parameters = new HashMap<>();
- parameters.put(Logger.MESSAGE, this.main.bind("configure.requiresJDK1.2orAbove")); //$NON-NLS-1$
- printTag(Logger.ERROR, parameters, true, true);
- }
- this.printlnErr(this.main.bind("configure.requiresJDK1.2orAbove")); //$NON-NLS-1$
- }
-
private void logXmlExtraProblem(CategorizedProblem problem, int globalErrorCount, int localErrorCount) {
final int sourceStart = problem.getSourceStart();
final int sourceEnd = problem.getSourceEnd();
@@ -1696,59 +1684,7 @@ public String bind(String id, String[] arguments) {
}
return MessageFormat.format(message, (Object[]) arguments);
}
-/**
- * Return true if and only if the running VM supports the given minimal version.
- *
- * This only checks the major version, since the minor version is always 0 (at least for the useful cases).
- * The given minimalSupportedVersion is one of the constants:
- *
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK1_1
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK1_2
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK1_3
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK1_4
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK1_5
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK1_6
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK1_7
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK1_8
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK9
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK10
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK11
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK12
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK13
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK14
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK15
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK16
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK17
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK18
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK19
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK20
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK21
- * org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants.JDK22
- *
- * @param minimalSupportedVersion the given minimal version
- * @return true if and only if the running VM supports the given minimal version, false otherwise
- */
-private boolean checkVMVersion(long minimalSupportedVersion) {
- // the format of this property is supposed to be xx.x where x are digits.
- String classFileVersion = System.getProperty("java.class.version"); //$NON-NLS-1$
- if (classFileVersion == null) {
- // by default we don't support a class file version we cannot recognize
- return false;
- }
- int index = classFileVersion.indexOf('.');
- if (index == -1) {
- // by default we don't support a class file version we cannot recognize
- return false;
- }
- int majorVersion;
- try {
- majorVersion = Integer.parseInt(classFileVersion.substring(0, index));
- } catch (NumberFormatException e) {
- // by default we don't support a class file version we cannot recognize
- return false;
- }
- return ClassFileConstants.getComplianceLevelForJavaVersion(majorVersion) >=minimalSupportedVersion;
-}
+
/*
* Low-level API performing the actual compilation
*/
@@ -2318,10 +2254,8 @@ public void configure(String[] argv) {
continue;
}
if (currentArg.equals("-inlineJSR")) { //$NON-NLS-1$
+ // ignore, it is enabled by default from 1.5 on
mode = DEFAULT;
- this.options.put(
- CompilerOptions.OPTION_InlineJsr,
- CompilerOptions.ENABLED);
continue;
}
if (currentArg.equals("-parameters")) { //$NON-NLS-1$
@@ -2654,22 +2588,11 @@ public void configure(String[] argv) {
this.bind("configure.unsupportedWithRelease", "-target"));//$NON-NLS-1$ //$NON-NLS-2$
}
this.didSpecifyTarget = true;
- if (currentArg.equals("1.1")) { //$NON-NLS-1$
- this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_1);
- } else if (currentArg.equals("1.2")) { //$NON-NLS-1$
- this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_2);
- } else if (currentArg.equals("jsr14")) { //$NON-NLS-1$
- this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_JSR14);
- } else if (currentArg.equals("cldc1.1")) { //$NON-NLS-1$
- this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_CLDC1_1);
- this.options.put(CompilerOptions.OPTION_InlineJsr, CompilerOptions.ENABLED);
+ String targetVersion = optionStringToVersion(currentArg);
+ if (targetVersion != null) {
+ this.options.put(CompilerOptions.OPTION_TargetPlatform, targetVersion);
} else {
- String version = optionStringToVersion(currentArg);
- if (version != null) {
- this.options.put(CompilerOptions.OPTION_TargetPlatform, version);
- } else {
- throw new IllegalArgumentException(this.bind("configure.targetJDK", currentArg)); //$NON-NLS-1$
- }
+ throw new IllegalArgumentException(this.bind("configure.targetJDK", currentArg)); //$NON-NLS-1$
}
mode = DEFAULT;
continue;
@@ -3155,23 +3078,10 @@ public void configure(String[] argv) {
this.pendingErrors = null;
}
}
-/** Translates any supported standard version starting at 1.3 up-to latest into the corresponding constant from CompilerOptions */
+/** Translates any supported standard version starting at {@link CompilerOptions#getFirstSupportedJavaVersion()}
+ * up-to latest into the corresponding constant from CompilerOptions */
private String optionStringToVersion(String currentArg) {
switch (currentArg) {
- case "1.3": return CompilerOptions.VERSION_1_3; //$NON-NLS-1$
- case "1.4": return CompilerOptions.VERSION_1_4; //$NON-NLS-1$
- case "1.5": //$NON-NLS-1$
- case "5": //$NON-NLS-1$
- case "5.0": //$NON-NLS-1$
- return CompilerOptions.VERSION_1_5;
- case "1.6": //$NON-NLS-1$
- case "6": //$NON-NLS-1$
- case "6.0": //$NON-NLS-1$
- return CompilerOptions.VERSION_1_6;
- case "1.7": //$NON-NLS-1$
- case "7": //$NON-NLS-1$
- case "7.0": //$NON-NLS-1$
- return CompilerOptions.VERSION_1_7;
case "1.8": //$NON-NLS-1$
case "8": //$NON-NLS-1$
case "8.0": //$NON-NLS-1$
@@ -4005,7 +3915,7 @@ private void handleErrorOrWarningToken(String token, boolean isEnabling, int sev
setSeverity(CompilerOptions.OPTION_ReportMissingJavadocComments, severity, isEnabling);
return;
} else if (token.equals("assertIdentifier")) { //$NON-NLS-1$
- setSeverity(CompilerOptions.OPTION_ReportAssertIdentifier, severity, isEnabling);
+ // error by default, no other values accepted
return;
} else if (token.equals("allDeadCode")) { //$NON-NLS-1$
setSeverity(CompilerOptions.OPTION_ReportDeadCode, severity, isEnabling);
@@ -4102,7 +4012,7 @@ private void handleErrorOrWarningToken(String token, boolean isEnabling, int sev
setSeverity(CompilerOptions.OPTION_ReportUndocumentedEmptyBlock, severity, isEnabling);
return;
} else if (token.equals("enumIdentifier")) { //$NON-NLS-1$
- setSeverity(CompilerOptions.OPTION_ReportEnumIdentifier, severity, isEnabling);
+ // error by default, no other values accepted
return;
} else if (token.equals("exports")) { //$NON-NLS-1$
setSeverity(CompilerOptions.OPTION_ReportAPILeak, severity, isEnabling);
@@ -4830,20 +4740,12 @@ public void performCompilation() {
String setting = System.getProperty("jdt.compiler.useSingleThread"); //$NON-NLS-1$
this.batchCompiler.useSingleThread = setting != null && setting.equals("true"); //$NON-NLS-1$
- if (this.compilerOptions.complianceLevel >= ClassFileConstants.JDK1_6
- && this.compilerOptions.processAnnotations) {
- if (checkVMVersion(ClassFileConstants.JDK1_6)) {
- initializeAnnotationProcessorManager();
- if (this.classNames != null) {
- this.batchCompiler.setBinaryTypes(processClassNames(this.batchCompiler.lookupEnvironment));
- }
- } else {
- // report a warning
- this.logger.logIncorrectVMVersionForAnnotationProcessing();
- }
- if (checkVMVersion(ClassFileConstants.JDK9)) {
- initRootModules(this.batchCompiler.lookupEnvironment, environment);
+ if (this.compilerOptions.processAnnotations) {
+ initializeAnnotationProcessorManager();
+ if (this.classNames != null) {
+ this.batchCompiler.setBinaryTypes(processClassNames(this.batchCompiler.lookupEnvironment));
}
+ initRootModules(this.batchCompiler.lookupEnvironment, environment);
}
// set the non-externally configurable options.
@@ -5430,76 +5332,15 @@ protected void validateOptions(boolean didSpecifyCompliance) {
throw new IllegalArgumentException(
this.bind("configure.unsupportedWithRelease", version));//$NON-NLS-1$
}
- if (CompilerOptions.VERSION_1_3.equals(version)) {
- if (!this.didSpecifySource) this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_3);
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_1);
- } else if (CompilerOptions.VERSION_1_4.equals(version)) {
- if (this.didSpecifySource) {
- Object source = this.options.get(CompilerOptions.OPTION_Source);
- if (CompilerOptions.VERSION_1_3.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_2);
- } else if (CompilerOptions.VERSION_1_4.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- }
- } else {
- this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_3);
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_2);
- }
- } else if (CompilerOptions.VERSION_1_5.equals(version)) {
- if (this.didSpecifySource) {
- Object source = this.options.get(CompilerOptions.OPTION_Source);
- if (CompilerOptions.VERSION_1_3.equals(source)
- || CompilerOptions.VERSION_1_4.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- } else if (CompilerOptions.VERSION_1_5.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
- }
- } else {
- this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
- }
- } else if (CompilerOptions.VERSION_1_6.equals(version)) {
- if (this.didSpecifySource) {
- Object source = this.options.get(CompilerOptions.OPTION_Source);
- if (CompilerOptions.VERSION_1_3.equals(source)
- || CompilerOptions.VERSION_1_4.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- } else if (CompilerOptions.VERSION_1_5.equals(source)
- || CompilerOptions.VERSION_1_6.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
- }
- } else {
- this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_6);
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
- }
- } else if (CompilerOptions.VERSION_1_7.equals(version)) {
- if (this.didSpecifySource) {
- Object source = this.options.get(CompilerOptions.OPTION_Source);
- if (CompilerOptions.VERSION_1_3.equals(source)
- || CompilerOptions.VERSION_1_4.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- } else if (CompilerOptions.VERSION_1_5.equals(source)
- || CompilerOptions.VERSION_1_6.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
- } else if (CompilerOptions.VERSION_1_7.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_7);
- }
- } else {
- this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_7);
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_7);
- }
- } else if (CompilerOptions.VERSION_1_8.equals(version)) {
+ if(CompilerOptions.UNSUPPORTED_VERSIONS.contains(version)) {
+ throw new IllegalArgumentException(this.bind("configure.unsupportedComplianceVersion", //$NON-NLS-1$
+ this.options.get(CompilerOptions.OPTION_Compliance), CompilerOptions.getFirstSupportedJavaVersion()));
+ }
+
+ if (CompilerOptions.VERSION_1_8.equals(version)) {
if (this.didSpecifySource) {
Object source = this.options.get(CompilerOptions.OPTION_Source);
- if (CompilerOptions.VERSION_1_3.equals(source)
- || CompilerOptions.VERSION_1_4.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- } else if (CompilerOptions.VERSION_1_5.equals(source)
- || CompilerOptions.VERSION_1_6.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
- } else if (CompilerOptions.VERSION_1_7.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_7);
- } else if (CompilerOptions.VERSION_1_8.equals(source)) {
+ if (CompilerOptions.VERSION_1_8.equals(source)) {
if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_8);
}
} else {
@@ -5509,15 +5350,7 @@ protected void validateOptions(boolean didSpecifyCompliance) {
} else if (CompilerOptions.VERSION_9.equals(version)) {
if (this.didSpecifySource) {
Object source = this.options.get(CompilerOptions.OPTION_Source);
- if (CompilerOptions.VERSION_1_3.equals(source)
- || CompilerOptions.VERSION_1_4.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- } else if (CompilerOptions.VERSION_1_5.equals(source)
- || CompilerOptions.VERSION_1_6.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
- } else if (CompilerOptions.VERSION_1_7.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_7);
- } else if (CompilerOptions.VERSION_1_8.equals(source)) {
+ if (CompilerOptions.VERSION_1_8.equals(source)) {
if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_8);
} else if (CompilerOptions.VERSION_9.equals(source)) {
if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_9);
@@ -5529,15 +5362,7 @@ protected void validateOptions(boolean didSpecifyCompliance) {
} else if (CompilerOptions.VERSION_10.equals(version)) {
if (this.didSpecifySource) {
Object source = this.options.get(CompilerOptions.OPTION_Source);
- if (CompilerOptions.VERSION_1_3.equals(source)
- || CompilerOptions.VERSION_1_4.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- } else if (CompilerOptions.VERSION_1_5.equals(source)
- || CompilerOptions.VERSION_1_6.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
- } else if (CompilerOptions.VERSION_1_7.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_7);
- } else if (CompilerOptions.VERSION_1_8.equals(source)) {
+ if (CompilerOptions.VERSION_1_8.equals(source)) {
if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_8);
} else if (CompilerOptions.VERSION_9.equals(source)) {
if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_9);
@@ -5552,16 +5377,10 @@ protected void validateOptions(boolean didSpecifyCompliance) {
if (!this.didSpecifyTarget) {
if (this.didSpecifySource) {
String source = this.options.get(CompilerOptions.OPTION_Source);
- if (CompilerOptions.VERSION_1_3.equals(source)
- || CompilerOptions.VERSION_1_4.equals(source)) {
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- } else if (CompilerOptions.VERSION_1_5.equals(source)
- || CompilerOptions.VERSION_1_6.equals(source)) {
- this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
- } else {
- // 1.3 is the lowest version that can be specified as -source
+ {
+ // 1.8 is the lowest version that can be specified as -source
// The following check will ensure '0' is ignored.
- if (CompilerOptions.versionToJdkLevel(source) >= ClassFileConstants.JDK1_7)
+ if (CompilerOptions.versionToJdkLevel(source) >= ClassFileConstants.JDK1_8)
this.options.put(CompilerOptions.OPTION_TargetPlatform, source);
}
} else {
@@ -5575,20 +5394,12 @@ protected void validateOptions(boolean didSpecifyCompliance) {
} else if (this.didSpecifySource) {
String version = this.options.get(CompilerOptions.OPTION_Source);
- // default is source 1.3 target 1.2 and compliance 1.4
- if (CompilerOptions.VERSION_1_4.equals(version)) {
- if (!didSpecifyCompliance) this.options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_4);
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- } else if (CompilerOptions.VERSION_1_5.equals(version)) {
- if (!didSpecifyCompliance) this.options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
- } else if (CompilerOptions.VERSION_1_6.equals(version)) {
- if (!didSpecifyCompliance) this.options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_6);
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
- } else if (CompilerOptions.VERSION_1_7.equals(version)) {
- if (!didSpecifyCompliance) this.options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_7);
- if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_7);
- } else if (CompilerOptions.VERSION_1_8.equals(version)) {
+ if(CompilerOptions.UNSUPPORTED_VERSIONS.contains(version)) {
+ throw new IllegalArgumentException(this.bind("configure.unsupportedSourceVersion", //$NON-NLS-1$
+ this.options.get(CompilerOptions.OPTION_Source), CompilerOptions.getFirstSupportedJavaVersion()));
+ }
+ // default is source 1.8 target 1.8 and compliance 1.8
+ if (CompilerOptions.VERSION_1_8.equals(version)) {
if (!didSpecifyCompliance) this.options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_8);
if (!this.didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_8);
} else if (CompilerOptions.VERSION_9.equals(version)) {
@@ -5622,22 +5433,6 @@ protected void validateOptions(boolean didSpecifyCompliance) {
&& this.complianceLevel < ClassFileConstants.JDK1_8) {
// compliance must be 1.8 if source is 1.8
throw new IllegalArgumentException(this.bind("configure.incompatibleComplianceForSource", this.options.get(CompilerOptions.OPTION_Compliance), CompilerOptions.VERSION_1_8)); //$NON-NLS-1$
- } else if (sourceVersion.equals(CompilerOptions.VERSION_1_7)
- && this.complianceLevel < ClassFileConstants.JDK1_7) {
- // compliance must be 1.7 if source is 1.7
- throw new IllegalArgumentException(this.bind("configure.incompatibleComplianceForSource", this.options.get(CompilerOptions.OPTION_Compliance), CompilerOptions.VERSION_1_7)); //$NON-NLS-1$
- } else if (sourceVersion.equals(CompilerOptions.VERSION_1_6)
- && this.complianceLevel < ClassFileConstants.JDK1_6) {
- // compliance must be 1.6 if source is 1.6
- throw new IllegalArgumentException(this.bind("configure.incompatibleComplianceForSource", this.options.get(CompilerOptions.OPTION_Compliance), CompilerOptions.VERSION_1_6)); //$NON-NLS-1$
- } else if (sourceVersion.equals(CompilerOptions.VERSION_1_5)
- && this.complianceLevel < ClassFileConstants.JDK1_5) {
- // compliance must be 1.5 if source is 1.5
- throw new IllegalArgumentException(this.bind("configure.incompatibleComplianceForSource", this.options.get(CompilerOptions.OPTION_Compliance), CompilerOptions.VERSION_1_5)); //$NON-NLS-1$
- } else if (sourceVersion.equals(CompilerOptions.VERSION_1_4)
- && this.complianceLevel < ClassFileConstants.JDK1_4) {
- // compliance must be 1.4 if source is 1.4
- throw new IllegalArgumentException(this.bind("configure.incompatibleComplianceForSource", this.options.get(CompilerOptions.OPTION_Compliance), CompilerOptions.VERSION_1_4)); //$NON-NLS-1$
} else {
long ver = CompilerOptions.versionToJdkLevel(sourceVersion);
if(this.complianceLevel < ver)
@@ -5650,45 +5445,15 @@ protected void validateOptions(boolean didSpecifyCompliance) {
// check and set compliance/source/target compatibilities
if (this.didSpecifyTarget) {
final String targetVersion = this.options.get(CompilerOptions.OPTION_TargetPlatform);
- // tolerate jsr14 target
- if (CompilerOptions.VERSION_JSR14.equals(targetVersion)) {
- // expecting source >= 1.5
- if (CompilerOptions.versionToJdkLevel(sourceVersion) < ClassFileConstants.JDK1_5) {
- throw new IllegalArgumentException(this.bind("configure.incompatibleTargetForGenericSource", targetVersion, sourceVersion)); //$NON-NLS-1$
- }
- } else if (CompilerOptions.VERSION_CLDC1_1.equals(targetVersion)) {
- if (this.didSpecifySource && CompilerOptions.versionToJdkLevel(sourceVersion) >= ClassFileConstants.JDK1_4) {
- throw new IllegalArgumentException(this.bind("configure.incompatibleSourceForCldcTarget", targetVersion, sourceVersion)); //$NON-NLS-1$
- }
- if (this.complianceLevel >= ClassFileConstants.JDK1_5) {
- throw new IllegalArgumentException(this.bind("configure.incompatibleComplianceForCldcTarget", targetVersion, sourceVersion)); //$NON-NLS-1$
- }
+ if(CompilerOptions.UNSUPPORTED_VERSIONS.contains(targetVersion)) {
+ throw new IllegalArgumentException(this.bind("configure.unsupportedTargetVersion", //$NON-NLS-1$
+ this.options.get(CompilerOptions.OPTION_TargetPlatform), CompilerOptions.getFirstSupportedJavaVersion()));
} else {
// target must be 1.8 if source is 1.8
if (CompilerOptions.versionToJdkLevel(sourceVersion) >= ClassFileConstants.JDK1_8
&& CompilerOptions.versionToJdkLevel(targetVersion) < ClassFileConstants.JDK1_8){
throw new IllegalArgumentException(this.bind("configure.incompatibleTargetForSource", targetVersion, CompilerOptions.VERSION_1_8)); //$NON-NLS-1$
}
- // target must be 1.7 if source is 1.7
- if (CompilerOptions.versionToJdkLevel(sourceVersion) >= ClassFileConstants.JDK1_7
- && CompilerOptions.versionToJdkLevel(targetVersion) < ClassFileConstants.JDK1_7){
- throw new IllegalArgumentException(this.bind("configure.incompatibleTargetForSource", targetVersion, CompilerOptions.VERSION_1_7)); //$NON-NLS-1$
- }
- // target must be 1.6 if source is 1.6
- if (CompilerOptions.versionToJdkLevel(sourceVersion) >= ClassFileConstants.JDK1_6
- && CompilerOptions.versionToJdkLevel(targetVersion) < ClassFileConstants.JDK1_6){
- throw new IllegalArgumentException(this.bind("configure.incompatibleTargetForSource", targetVersion, CompilerOptions.VERSION_1_6)); //$NON-NLS-1$
- }
- // target must be 1.5 if source is 1.5
- if (CompilerOptions.versionToJdkLevel(sourceVersion) >= ClassFileConstants.JDK1_5
- && CompilerOptions.versionToJdkLevel(targetVersion) < ClassFileConstants.JDK1_5){
- throw new IllegalArgumentException(this.bind("configure.incompatibleTargetForSource", targetVersion, CompilerOptions.VERSION_1_5)); //$NON-NLS-1$
- }
- // target must be 1.4 if source is 1.4
- if (CompilerOptions.versionToJdkLevel(sourceVersion) >= ClassFileConstants.JDK1_4
- && CompilerOptions.versionToJdkLevel(targetVersion) < ClassFileConstants.JDK1_4){
- throw new IllegalArgumentException(this.bind("configure.incompatibleTargetForSource", targetVersion, CompilerOptions.VERSION_1_4)); //$NON-NLS-1$
- }
// target cannot be greater than compliance level
if (this.complianceLevel < CompilerOptions.versionToJdkLevel(targetVersion)){
throw new IllegalArgumentException(this.bind("configure.incompatibleComplianceForTarget", this.options.get(CompilerOptions.OPTION_Compliance), targetVersion)); //$NON-NLS-1$
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/batch/messages.properties b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/batch/messages.properties
index f393dce99d..afe696b245 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/batch/messages.properties
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/batch/messages.properties
@@ -61,7 +61,6 @@ compile.severalClassFilesGenerated = [{0} .class files generated]
compile.failOnWarning = error: warnings found and -failOnWarning specified
### configure
-configure.requiresJDK1.2orAbove = Need to use a JVM >= 1.2
configure.duplicateLog = duplicate log specification: {0}
configure.duplicateRepeat = duplicate repeat specification: {0}
configure.duplicateMaxProblems = duplicate max problems specification: {0}
@@ -71,7 +70,10 @@ configure.duplicateTarget = duplicate target compliance setting specification: {
configure.unsupportedReleaseOption = option --release is supported only when run with JDK 9 or above
configure.unsupportedWithRelease = option {0} is not supported when --release is used
configure.unsupportedReleaseVersion = release version {0} is not supported
-configure.source = source level should be in ''1.1''...''1.8'',''9''...''22'' (or ''5.0''..''22.0''): {0}
+configure.unsupportedComplianceVersion = compliance option {0} is no longer supported. Use {1} or later.
+configure.unsupportedSourceVersion = source option {0} is no longer supported. Use {1} or later.
+configure.unsupportedTargetVersion = target option {0} is no longer supported. Use {1} or later.
+configure.source = source level should be in ''1.8'',''9''...''22'' (or ''8.0''..''22.0''): {0}
configure.invalidSystem = invalid location for system libraries: {0}
configure.unsupportedOption = option {0} not supported at compliance level 9 and above
configure.duplicateOutputPath = duplicate output path specification: {0}
@@ -92,9 +94,8 @@ configure.invalidDebugOption = invalid debug option: {0}
configure.invalidWarningConfiguration = invalid warning configuration: ''{0}''
configure.invalidWarning = invalid warning token: ''{0}''. Ignoring warning and compiling
configure.invalidWarningOption = invalid warning option: ''{0}''. Must specify a warning token
-configure.targetJDK = target level should be in ''1.1''...''1.8'',''9''...''22'' (or ''5.0''..''22.0'') or cldc1.1: {0}
+configure.targetJDK = target level should be in ''1.8'',''9''...''22'' (or ''8.0''..''22.0''): {0}
configure.incompatibleTargetForSource = Target level ''{0}'' is incompatible with source level ''{1}''. A target level ''{1}'' or better is required
-configure.incompatibleTargetForGenericSource = Target level ''{0}'' is incompatible with source level ''{1}''. A source level ''1.5'' or better is required
configure.incompatibleComplianceForSource = Compliance level ''{0}'' is incompatible with source level ''{1}''. A compliance level ''{1}'' or better is required
configure.incompatibleComplianceForTarget = Compliance level ''{0}'' is incompatible with target level ''{1}''. A compliance level ''{1}'' or better is required
configure.repetition = repetition must be a positive integer: {0}
@@ -138,9 +139,7 @@ configure.invalidClassName = invalid class name: {0}
configure.invalidModuleName = invalid module name: {0}
configure.packageConflict = The package {0} is accessible from more than one module: {1}, {2}
configure.unavailableAPT = Unable to load annotation processing manager {0} from classpath.
-configure.incorrectVMVersionforAPT = Annotation processing got disabled, since it requires a 1.6 compliant JVM
-configure.incompatibleSourceForCldcTarget=Target level ''{0}'' is incompatible with source level ''{1}''. A source level ''1.3'' or lower is required
-configure.incompatibleComplianceForCldcTarget=Target level ''{0}'' is incompatible with compliance level ''{1}''. A compliance level ''1.4''or lower is required
+configure.incorrectVMVersionforAPT = Annotation processing got disabled because of unsupported class version
configure.invalidClasspathSection = invalid Class-Path header in manifest of jar file: {0}
configure.multipleClasspathSections = multiple Class-Path headers in manifest of jar file: {0}
configure.missingwarningspropertiesfile=properties file {0} does not exist
@@ -243,16 +242,11 @@ misc.usage = {1} {2}\n\
\ resolved to be root modules\n\
\ --limit-modules (,)*\n\
\ specify the observable module names\n\
-\ --patch-modules =\n\
+\ --patch-module =\n\
\ specify source locations for patching the given module\n\
\ --release compile for a specific VM version\n\
\ \n\
\ Compliance options:\n\
-\ -1.3 use 1.3 compliance (-source 1.3 -target 1.1)\n\
-\ -1.4 + use 1.4 compliance (-source 1.3 -target 1.2)\n\
-\ -1.5 -5 -5.0 use 1.5 compliance (-source 1.5 -target 1.5)\n\
-\ -1.6 -6 -6.0 use 1.6 compliance (-source 1.6 -target 1.6)\n\
-\ -1.7 -7 -7.0 use 1.7 compliance (-source 1.7 -target 1.7)\n\
\ -1.8 -8 -8.0 use 1.8 compliance (-source 1.8 -target 1.8)\n\
\ -1.9 -9 -9.0 use 1.9 compliance (-source 1.9 -target 1.9)\n\
\ -10 -10.0 use 10 compliance (-source 10 -target 10)\n\
@@ -268,12 +262,10 @@ misc.usage = {1} {2}\n\
\ -20 -20.0 use 20 compliance (-source 20 -target 20)\n\
\ -21 -21.0 use 21 compliance (-source 21 -target 21)\n\
\ -22 -22.0 use 22 compliance (-source 22 -target 22)\n\
-\ -source set source level: 1.3 to 1.9, 10 to 22\n\
-\ (or 6, 6.0, etc)\n\
-\ -target set classfile target: 1.3 to 1.9, 10 to 22\n\
-\ (or 6, 6.0, etc)\n\
-\ cldc1.1 can also be used to generate the StackMap\n\
-\ attribute\n\
+\ -source set source level: 1.8, 1.9, 10 to 22\n\
+\ (or 8, 8.0, etc)\n\
+\ -target set classfile target: 1.8, 1.9, 10 to 22\n\
+\ (or 8, 8.0, etc)\n\
\ --enable-preview enable support for preview features of the\n\
\ latest Java release\n\
\ \n\
@@ -316,7 +308,6 @@ misc.usage = {1} {2}\n\
\ -preserveAllLocals preserve unused local vars for debug purpose\n\
\ \n\
\ Annotation processing options:\n\
-\ These options are meaningful only in a 1.6 environment.\n\
\ -Akey[=value] options that are passed to annotation processors\n\
\ -processorpath \n\
\ specify locations where to find annotation processors.\n\
@@ -353,7 +344,6 @@ misc.usage = {1} {2}\n\
\ -noExit do not call System.exit(n) at end of compilation (n==0\n\
\ if no error)\n\
\ -repeat repeat compilation process times for perf analysis\n\
-\ -inlineJSR inline JSR bytecode (implicit if target >= 1.5)\n\
\ -enableJavadoc consider references in javadoc\n\
\ -parameters generate method parameters attribute (for target >= 1.8)\n\
\ -genericsignature generate generic signature for lambda expressions\n\
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java
index 2bbd60bba5..ac859df6bc 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java
@@ -126,6 +126,7 @@ public class CompilerOptions {
public static final String OPTION_TaskTags = "org.eclipse.jdt.core.compiler.taskTags"; //$NON-NLS-1$
public static final String OPTION_TaskPriorities = "org.eclipse.jdt.core.compiler.taskPriorities"; //$NON-NLS-1$
public static final String OPTION_TaskCaseSensitive = "org.eclipse.jdt.core.compiler.taskCaseSensitive"; //$NON-NLS-1$
+ @Deprecated(forRemoval = true)
public static final String OPTION_InlineJsr = "org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode"; //$NON-NLS-1$
public static final String OPTION_ShareCommonFinallyBlocks = "org.eclipse.jdt.core.compiler.codegen.shareCommonFinallyBlocks"; //$NON-NLS-1$
public static final String OPTION_ReportNullReference = "org.eclipse.jdt.core.compiler.problem.nullReference"; //$NON-NLS-1$
@@ -516,6 +517,7 @@ public class CompilerOptions {
public int reportMissingJavadocCommentsVisibility;
/** Specify if need to flag missing javadoc comment for overriding method */
public boolean reportMissingJavadocCommentsOverriding;
+ @Deprecated
/** Indicate whether the JSR bytecode should be inlined to avoid its presence in classfile */
public boolean inlineJsrBytecode;
/** Indicate whether common escaping finally blocks should be shared */
@@ -1029,7 +1031,6 @@ public static long versionToJdkLevel(String versionID, boolean supportUnreleased
public static String[] warningOptionNames() {
String[] result = {
OPTION_ReportAnnotationSuperInterface,
- OPTION_ReportAssertIdentifier,
OPTION_ReportAutoboxing,
OPTION_ReportComparingIdentical,
OPTION_ReportDeadCode,
@@ -1039,7 +1040,6 @@ public static String[] warningOptionNames() {
OPTION_ReportDeprecationWhenOverridingDeprecatedMethod,
OPTION_ReportDiscouragedReference,
OPTION_ReportEmptyStatement,
- OPTION_ReportEnumIdentifier,
OPTION_ReportFallthroughCase,
OPTION_ReportFieldHiding,
OPTION_ReportFinallyBlockNotCompletingNormally,
@@ -1389,8 +1389,8 @@ public Map getMap() {
optionsMap.put(OPTION_ReportTypeParameterHiding, getSeverityString(TypeHiding));
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_ReportAssertIdentifier, ERROR);
+ optionsMap.put(OPTION_ReportEnumIdentifier, ERROR);
optionsMap.put(OPTION_ReportUndocumentedEmptyBlock, getSeverityString(UndocumentedEmptyBlock));
optionsMap.put(OPTION_ReportUnnecessaryTypeCheck, getSeverityString(UnnecessaryTypeCheck));
optionsMap.put(OPTION_ReportUnnecessaryElse, getSeverityString(UnnecessaryElse));
@@ -1447,7 +1447,6 @@ public Map getMap() {
optionsMap.put(OPTION_ReportUnusedParameterIncludeDocCommentReference, this.reportUnusedParameterIncludeDocCommentReference ? 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);
optionsMap.put(OPTION_ShareCommonFinallyBlocks, this.shareCommonFinallyBlocks ? ENABLED : DISABLED);
optionsMap.put(OPTION_ReportNullReference, getSeverityString(NullReference));
optionsMap.put(OPTION_ReportPotentialNullReference, getSeverityString(PotentialNullReference));
@@ -1596,9 +1595,12 @@ protected void resetDefaults() {
// by default only lines and source attributes are generated.
this.produceDebugAttributes = ClassFileConstants.ATTR_SOURCE | ClassFileConstants.ATTR_LINES;
- this.complianceLevel = this.originalComplianceLevel = ClassFileConstants.JDK1_4; // by default be compliant with 1.4
- this.sourceLevel = this.originalSourceLevel = ClassFileConstants.JDK1_3; //1.3 source behavior by default
- this.targetJDK = ClassFileConstants.JDK1_2; // default generates for JVM1.2
+
+ // by default be compliant with first supported version
+ final long firstSupportedJdkLevel = getFirstSupportedJdkLevel();
+ this.complianceLevel = this.originalComplianceLevel = firstSupportedJdkLevel;
+ this.sourceLevel = this.originalSourceLevel = firstSupportedJdkLevel;
+ this.targetJDK = firstSupportedJdkLevel;
this.defaultEncoding = null; // will use the platform default encoding
@@ -1659,7 +1661,7 @@ protected void resetDefaults() {
this.reportMissingJavadocCommentsOverriding = false;
// JSR bytecode inlining and sharing
- this.inlineJsrBytecode = false;
+ this.inlineJsrBytecode = true;
this.shareCommonFinallyBlocks = false;
// javadoc comment support
@@ -1808,7 +1810,7 @@ public void set(Map optionsMap) {
}
this.targetJDK = level;
}
- if (this.targetJDK >= ClassFileConstants.JDK1_5) this.inlineJsrBytecode = true; // forced from 1.5 mode on
+ this.inlineJsrBytecode = true; // forced from 1.5 mode on
}
if ((optionValue = optionsMap.get(OPTION_Encoding)) != null) {
this.defaultEncoding = null;
@@ -1896,15 +1898,6 @@ public void set(Map optionsMap) {
this.isTaskCaseSensitive = false;
}
}
- if ((optionValue = optionsMap.get(OPTION_InlineJsr)) != null) {
- if (this.targetJDK < ClassFileConstants.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_ShareCommonFinallyBlocks)) != null) {
if (ENABLED.equals(optionValue)) {
this.shareCommonFinallyBlocks = true;
@@ -1980,8 +1973,8 @@ public void set(Map optionsMap) {
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_ReportAssertIdentifier)) != null) updateSeverity(AssertUsedAsAnIdentifier, ERROR);
+ if ((optionValue = optionsMap.get(OPTION_ReportEnumIdentifier)) != null) updateSeverity(EnumUsedAsAnIdentifier, ERROR);
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);
@@ -2408,7 +2401,6 @@ public String toString() {
buf.append("\n\t- report unused parameter when overriding concrete method : ").append(this.reportUnusedParameterWhenOverridingConcrete ? ENABLED : DISABLED); //$NON-NLS-1$
buf.append("\n\t- report unused parameter include doc comment reference : ").append(this.reportUnusedParameterIncludeDocCommentReference ? 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- share common finally blocks : ").append(this.shareCommonFinallyBlocks ? ENABLED : DISABLED); //$NON-NLS-1$
buf.append("\n\t- report unavoidable generic type problems : ").append(this.reportUnavoidableGenericTypeProblems ? ENABLED : DISABLED); //$NON-NLS-1$
buf.append("\n\t- unsafe type operation: ").append(getSeverityString(UncheckedTypeOperation)); //$NON-NLS-1$
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java
index f10bcb230f..98b77f70d2 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java
@@ -1987,33 +1987,39 @@ MethodBinding resolveTypesFor(MethodBinding method) {
if ((method.modifiers & ExtraCompilerModifiers.AccUnresolved) == 0)
return method;
+ boolean tolerateSave = this.environment.mayTolerateMissingType;
+ this.environment.mayTolerateMissingType |= this.environment.globalOptions.complianceLevel >= ClassFileConstants.JDK1_8; // tolerance only implemented for 1.8+
+ try {
- if (!method.isConstructor()) {
- TypeBinding resolvedType = resolveType(method.returnType, this.environment, true /* raw conversion */);
- method.returnType = resolvedType;
- if ((resolvedType.tagBits & TagBits.HasMissingType) != 0) {
- method.tagBits |= TagBits.HasMissingType;
+ if (!method.isConstructor()) {
+ TypeBinding resolvedType = resolveType(method.returnType, this.environment, true /* raw conversion */);
+ method.returnType = resolvedType;
+ if ((resolvedType.tagBits & TagBits.HasMissingType) != 0) {
+ method.tagBits |= TagBits.HasMissingType;
+ }
}
- }
- for (int i = method.parameters.length; --i >= 0;) {
- TypeBinding resolvedType = resolveType(method.parameters[i], this.environment, true /* raw conversion */);
- method.parameters[i] = resolvedType;
- if ((resolvedType.tagBits & TagBits.HasMissingType) != 0) {
- method.tagBits |= TagBits.HasMissingType;
+ for (int i = method.parameters.length; --i >= 0;) {
+ TypeBinding resolvedType = resolveType(method.parameters[i], this.environment, true /* raw conversion */);
+ method.parameters[i] = resolvedType;
+ if ((resolvedType.tagBits & TagBits.HasMissingType) != 0) {
+ method.tagBits |= TagBits.HasMissingType;
+ }
}
- }
- for (int i = method.thrownExceptions.length; --i >= 0;) {
- ReferenceBinding resolvedType = (ReferenceBinding) resolveType(method.thrownExceptions[i], this.environment, true /* raw conversion */);
- method.thrownExceptions[i] = resolvedType;
- if ((resolvedType.tagBits & TagBits.HasMissingType) != 0) {
- method.tagBits |= TagBits.HasMissingType;
+ for (int i = method.thrownExceptions.length; --i >= 0;) {
+ ReferenceBinding resolvedType = (ReferenceBinding) resolveType(method.thrownExceptions[i], this.environment, true /* raw conversion */);
+ method.thrownExceptions[i] = resolvedType;
+ if ((resolvedType.tagBits & TagBits.HasMissingType) != 0) {
+ method.tagBits |= TagBits.HasMissingType;
+ }
}
+ for (int i = method.typeVariables.length; --i >= 0;) {
+ method.typeVariables[i].resolve();
+ }
+ method.modifiers &= ~ExtraCompilerModifiers.AccUnresolved;
+ return method;
+ } finally {
+ this.environment.mayTolerateMissingType = tolerateSave;
}
- for (int i = method.typeVariables.length; --i >= 0;) {
- method.typeVariables[i].resolve();
- }
- method.modifiers &= ~ExtraCompilerModifiers.AccUnresolved;
- return method;
}
@Override
AnnotationBinding[] retrieveAnnotations(Binding binding) {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/CaptureBinding.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/CaptureBinding.java
index 9dea474978..c7723579ac 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/CaptureBinding.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/CaptureBinding.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2021 IBM Corporation and others.
+ * Copyright (c) 2000, 2024 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -63,13 +63,10 @@ public CaptureBinding(WildcardBinding wildcard, ReferenceBinding sourceType, int
this.environment.typeSystem.cacheDerivedType(this, unannotated, this);
// propagate from wildcard to capture - use super version, because our own method propagates type annotations in the opposite direction:
super.setTypeAnnotations(wildcard.getTypeAnnotations(), wildcard.environment.globalOptions.isAnnotationBasedNullAnalysisEnabled);
- if (wildcard.hasNullTypeAnnotations())
- this.tagBits |= TagBits.HasNullTypeAnnotation;
+ this.tagBits |= wildcard.tagBits & (TagBits.HasNullTypeAnnotation|TagBits.HasMissingType);
} else {
computeId(this.environment);
- if(wildcard.hasNullTypeAnnotations()) {
- this.tagBits |= (wildcard.tagBits & TagBits.AnnotationNullMASK) | TagBits.HasNullTypeAnnotation;
- }
+ this.tagBits |= wildcard.tagBits & (TagBits.AnnotationNullMASK|TagBits.HasNullTypeAnnotation|TagBits.HasMissingType);
}
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java
index 1a26017c51..48c17e69a6 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java
@@ -1179,11 +1179,13 @@ private int checkAndRecordImportBinding(
final char[] name = importReference.getSimpleName();
if (importBinding instanceof ReferenceBinding || conflictingType != null) {
ReferenceBinding referenceBinding = conflictingType == null ? (ReferenceBinding) importBinding : conflictingType;
- ReferenceBinding typeToCheck = referenceBinding.problemId() == ProblemReasons.Ambiguous
- ? ((ProblemReferenceBinding) referenceBinding).closestMatch
- : referenceBinding;
- if (importReference.isTypeUseDeprecated(typeToCheck, this))
- problemReporter().deprecatedType(typeToCheck, importReference);
+ if (compilerOptions().complianceLevel <= ClassFileConstants.JDK1_8) { // not any more since JEP 211 / JDK 9
+ ReferenceBinding typeToCheck = referenceBinding.problemId() == ProblemReasons.Ambiguous
+ ? ((ProblemReferenceBinding) referenceBinding).closestMatch
+ : referenceBinding;
+ if (importReference.isTypeUseDeprecated(typeToCheck, this))
+ problemReporter().deprecatedType(typeToCheck, importReference);
+ }
ReferenceBinding existingType = typesBySimpleNames.get(name);
if (existingType != null) {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintExceptionFormula.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintExceptionFormula.java
index 37cb04ee36..d7d0c3e327 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintExceptionFormula.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintExceptionFormula.java
@@ -44,6 +44,10 @@ public ConstraintExceptionFormula(FunctionalExpression left, TypeBinding type) {
@Override
public Object reduce(InferenceContext18 inferenceContext) {
+ if ((this.right.tagBits & TagBits.HasMissingType) != 0) {
+ inferenceContext.hasIgnoredMissingType = true;
+ return TRUE;
+ }
// JLS 18.2.5
Scope scope = inferenceContext.scope;
if (!this.right.isFunctionalInterface(scope))
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintExpressionFormula.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintExpressionFormula.java
index 29094d54ba..2bce82c25e 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintExpressionFormula.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintExpressionFormula.java
@@ -59,6 +59,10 @@ class ConstraintExpressionFormula extends ConstraintFormula {
@Override
public Object reduce(InferenceContext18 inferenceContext) throws InferenceFailureException {
+ if ((this.right.tagBits & TagBits.HasMissingType) != 0) {
+ inferenceContext.hasIgnoredMissingType = true;
+ return TRUE;
+ }
if (this.relation == POTENTIALLY_COMPATIBLE) {
/* 15.12.2.1: ... The definition of potential applicability goes beyond a basic arity check to also take into account the presence and "shape" of functional interface
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintTypeFormula.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintTypeFormula.java
index 3149d02f0d..7b7346deac 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintTypeFormula.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ConstraintTypeFormula.java
@@ -63,6 +63,10 @@ private ConstraintTypeFormula(TypeBinding exprType, TypeBinding right, int relat
// return: ReductionResult or ConstraintFormula[]
@Override
public Object reduce(InferenceContext18 inferenceContext) {
+ if ((this.left.tagBits & TagBits.HasMissingType) != 0 || (this.right.tagBits & TagBits.HasMissingType) != 0) {
+ inferenceContext.hasIgnoredMissingType = true;
+ return TRUE;
+ }
switch (this.relation) {
case COMPATIBLE:
// 18.2.2:
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/InferenceContext18.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/InferenceContext18.java
index 8eef8e7250..96595c5f56 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/InferenceContext18.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/InferenceContext18.java
@@ -180,6 +180,8 @@ public class InferenceContext18 {
// the following two flags control to what degree we continue with incomplete information:
private boolean isInexactVarargsInference = false;
boolean prematureOverloadResolution = false;
+ // during reduction we ignore missing types but record that fact here:
+ boolean hasIgnoredMissingType;
public static boolean isSameSite(InvocationSite site1, InvocationSite site2) {
if (site1 == site2)
@@ -754,6 +756,7 @@ private boolean addConstraintsToC_OneExpr(Expression expri, Set bindings = new ArrayList<>();
for (char[] mod : declaringModules) {
ModuleBinding declaringModule = this.root.getModule(mod);
if (declaringModule != null)
- packageBinding = SplitPackageBinding.combine(declaringModule.getTopLevelPackage(constantPoolName[0]), packageBinding, this.module);
+ bindings.add(declaringModule.getTopLevelPackage(constantPoolName[0]));
}
+ if (!bindings.isEmpty())
+ packageBinding = SplitPackageBinding.combineAll(bindings, this.module);
}
} else {
packageBinding = this.module.getTopLevelPackage(constantPoolName[0]);
@@ -798,14 +801,17 @@ private PackageBinding computePackageFrom(char[][] constantPoolName, boolean isM
if (this.useModuleSystem) {
if (this.module.isUnnamed()) {
char[][] currentCompoundName = CharOperation.arrayConcat(parent.compoundName, constantPoolName[i]);
- char[][] declaringModules = ((IModuleAwareNameEnvironment) this.nameEnvironment).getModulesDeclaringPackage(
+ char[][] declaringModules = ((IModuleAwareNameEnvironment) this.nameEnvironment).getUniqueModulesDeclaringPackage(
currentCompoundName, ModuleBinding.ANY);
+ List bindings = new ArrayList<>();
if (declaringModules != null) {
for (char[] mod : declaringModules) {
ModuleBinding declaringModule = this.root.getModule(mod);
if (declaringModule != null)
- packageBinding = SplitPackageBinding.combine(declaringModule.getVisiblePackage(currentCompoundName), packageBinding, this.module);
+ bindings.add(declaringModule.getVisiblePackage(currentCompoundName));
}
+ if (!bindings.isEmpty())
+ packageBinding = SplitPackageBinding.combineAll(bindings, this.module);
}
} else {
packageBinding = this.module.getVisiblePackage(parent, constantPoolName[i]);
@@ -2424,7 +2430,7 @@ public Binding getInaccessibleBinding(char[][] compoundName, ModuleBinding clien
int length = compoundName.length;
for (int j=length; j>0; j--) {
char[][] candidateName = CharOperation.subarray(compoundName, 0, j);
- char[][] moduleNames = moduleEnv.getModulesDeclaringPackage(candidateName, ModuleBinding.ANY);
+ char[][] moduleNames = moduleEnv.getUniqueModulesDeclaringPackage(candidateName, ModuleBinding.ANY);
if (moduleNames != null) {
// in some module a package named candidateName exists, verify observability & inaccessibility:
PackageBinding inaccessiblePackage = null;
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/MethodBinding.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/MethodBinding.java
index fa74db4f09..be5c7ac183 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/MethodBinding.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/MethodBinding.java
@@ -413,9 +413,11 @@ public final boolean canBeSeenBy(TypeBinding receiverType, InvocationSite invoca
return false;
}
-public List collectMissingTypes(List missingTypes) {
+public List collectMissingTypes(List missingTypes, boolean considerReturnType) {
if ((this.tagBits & TagBits.HasMissingType) != 0) {
- missingTypes = this.returnType.collectMissingTypes(missingTypes);
+ if (considerReturnType) {
+ missingTypes = this.returnType.collectMissingTypes(missingTypes);
+ }
for (TypeBinding parameter : this.parameters) {
missingTypes = parameter.collectMissingTypes(missingTypes);
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
index c2565c9448..cb33ebcdec 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
@@ -14,6 +14,7 @@
*******************************************************************************/
package org.eclipse.jdt.internal.compiler.lookup;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
@@ -595,13 +596,17 @@ PackageBinding getVisiblePackage(PackageBinding parent, char[] name) {
}
} else {
// visible but foreign (when current is unnamed or auto):
+ List bindings = new ArrayList<>();
for (char[] declaringModuleName : declaringModuleNames) {
ModuleBinding declaringModule = this.environment.root.getModule(declaringModuleName);
if (declaringModule != null) {
PlainPackageBinding declaredPackage = declaringModule.getDeclaredPackage(fullFlatName);
- binding = SplitPackageBinding.combine(declaredPackage, binding, this);
+ if (declaredPackage != null)
+ bindings.add(declaredPackage);
}
}
+ if (!bindings.isEmpty())
+ binding = SplitPackageBinding.combineAll(bindings, this);
}
}
}
@@ -664,15 +669,18 @@ public PackageBinding getVisiblePackage(char[][] qualifiedPackageName) {
}
PackageBinding combineWithPackagesFromOtherRelevantModules(PackageBinding currentBinding, char[][] compoundName, char[][] declaringModuleNames) {
- for (ModuleBinding moduleBinding : otherRelevantModules(declaringModuleNames)) {
- PlainPackageBinding nextBinding = moduleBinding.getDeclaredPackage(CharOperation.concatWith(compoundName, '.'));
- currentBinding = SplitPackageBinding.combine(nextBinding, currentBinding, this);
- }
- return currentBinding;
+ char[] packageName = CharOperation.concatWith(compoundName, '.');
+ List bindings = otherRelevantModules(declaringModuleNames).stream()
+ .map(m -> m.getDeclaredPackage(packageName))
+ .collect(Collectors.toList());
+ if (bindings.isEmpty())
+ return currentBinding;
+ bindings.add(currentBinding);
+ return SplitPackageBinding.combineAll(bindings, this);
}
List otherRelevantModules(char[][] declaringModuleNames) {
- if (isUnnamed() && declaringModuleNames != null) {
+ if ((isUnnamed() || isAutomatic()) && declaringModuleNames != null) {
// unnamed module reads all named modules,
// so all modules declaring the given package are relevant:
return Arrays.stream(declaringModuleNames)
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ParameterizedGenericMethodBinding.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ParameterizedGenericMethodBinding.java
index 6f4940b978..83f5fe5f45 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ParameterizedGenericMethodBinding.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ParameterizedGenericMethodBinding.java
@@ -135,7 +135,7 @@ public static MethodBinding computeCompatibleMethod(MethodBinding originalMethod
ParameterizedGenericMethodBinding substitute = inferFromArgumentTypes(scope, originalMethod, arguments, parameters, inferenceContext);
if (substitute != null && substitute.returnType.isCompatibleWith(expectedType)) {
// Do not use the new solution if it results in incompatibilities in parameter types
- if ((scope.parameterCompatibilityLevel(substitute, arguments, false)) > Scope.NOT_COMPATIBLE) {
+ if ((scope.parameterCompatibilityLevel(substitute, arguments, false)) > Scope.NOT_COMPATIBLE) { // don't worry about COMPATIBLE_IGNORING_MISSING_TYPE in 1.7 context
methodSubstitute = substitute;
} else {
inferenceContext = oldContext;
@@ -307,6 +307,9 @@ public static MethodBinding computeCompatibleMethod18(MethodBinding originalMeth
if (invocationSite instanceof Invocation && allArgumentsAreProper && (expectedType == null || expectedType.isProperType(true)))
infCtx18.forwardResults(result, (Invocation) invocationSite, methodSubstitute, expectedType);
try {
+ if (infCtx18.hasIgnoredMissingType) {
+ return new ProblemMethodBinding(originalMethod, originalMethod.selector, parameters, ProblemReasons.MissingTypeInSignature);
+ }
if (hasReturnProblem) { // illegally working from the provisional result?
MethodBinding problemMethod = infCtx18.getReturnProblemMethodIfNeeded(expectedType, methodSubstitute);
if (problemMethod instanceof ProblemMethodBinding) {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding.java
index 0e39293258..b4576ac288 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding.java
@@ -66,7 +66,7 @@ public ParameterizedMethodBinding(final ParameterizedTypeBinding parameterizedDe
for (int i = 0; i < length; i++) { // copy original type variable to relocate
TypeVariableBinding originalVariable = originalVariables[i];
substitutedVariables[i] = new TypeVariableBinding(originalVariable.sourceName, this, originalVariable.rank, parameterizedDeclaringClass.environment);
- substitutedVariables[i].tagBits |= (originalVariable.tagBits & (TagBits.AnnotationNullMASK|TagBits.HasNullTypeAnnotation));
+ substitutedVariables[i].tagBits |= (originalVariable.tagBits & (TagBits.AnnotationNullMASK|TagBits.HasNullTypeAnnotation|TagBits.HasMissingType));
}
this.typeVariables = substitutedVariables;
@@ -209,7 +209,7 @@ public ParameterizedMethodBinding(final ReferenceBinding declaringClass, MethodB
this,
originalVariable.rank,
environment);
- substitutedVariables[i].tagBits |= (originalVariable.tagBits & (TagBits.AnnotationNullMASK|TagBits.HasNullTypeAnnotation));
+ substitutedVariables[i].tagBits |= (originalVariable.tagBits & (TagBits.AnnotationNullMASK|TagBits.HasNullTypeAnnotation|TagBits.HasMissingType));
}
this.typeVariables = substitutedVariables;
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/PlainPackageBinding.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/PlainPackageBinding.java
index 894a710bf8..b9ce646a5b 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/PlainPackageBinding.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/PlainPackageBinding.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2019 GK Software SE, and others.
+ * Copyright (c) 2019, 2024 GK Software SE, and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -44,4 +44,10 @@ public PlainPackageBinding getIncarnation(ModuleBinding moduleBinding) {
return this;
return null;
}
+
+ @Override
+ PackageBinding addPackage(PackageBinding element, ModuleBinding module) {
+ assert element instanceof PlainPackageBinding : "PlainPackageBinding cannot be parent of split " + element; //$NON-NLS-1$
+ return super.addPackage(element, module);
+ }
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ProblemReasons.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ProblemReasons.java
index 5c550bf624..fff08aa31c 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ProblemReasons.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/ProblemReasons.java
@@ -52,4 +52,5 @@ public interface ProblemReasons {
final int InterfaceMethodInvocationNotBelow18 = 29;
final int NotAccessible = 30; // JLS 6.6.1 - module aspects
final int ErrorAlreadyReported = 31;
+ final int MissingTypeInSignature = 32;
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/Scope.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/Scope.java
index 95f56ffc98..5c23f08901 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/Scope.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/Scope.java
@@ -109,6 +109,7 @@ public char[] readableName() {
public final static int COMPATIBLE = 0;
public final static int AUTOBOX_COMPATIBLE = 1;
public final static int VARARGS_COMPATIBLE = 2;
+ public final static int COMPATIBLE_IGNORING_MISSING_TYPE = -2;
/* Type Compatibilities */
public static final int EQUAL_OR_MORE_SPECIFIC = -1;
@@ -871,13 +872,16 @@ protected final MethodBinding computeCompatibleMethod(MethodBinding method, Type
}
- if ((parameterCompatibilityLevel(method, arguments, tiebreakingVarargsMethods)) > NOT_COMPATIBLE) {
+ int level = parameterCompatibilityLevel(method, arguments, tiebreakingVarargsMethods);
+ if (level > NOT_COMPATIBLE) {
if (method.hasPolymorphicSignature(this)) {
// generate polymorphic method and set polymorphic tagbits as well
method.tagBits |= TagBits.AnnotationPolymorphicSignature;
return this.environment().createPolymorphicMethod(method, arguments, this);
}
return method;
+ } else if (level == COMPATIBLE_IGNORING_MISSING_TYPE) {
+ return new ProblemMethodBinding(method, method.selector, method.parameters, ProblemReasons.MissingTypeInSignature);
}
// if method is generic and type arguments have been supplied, only then answer a problem
// of ParameterizedMethodTypeMismatch, else a non-generic method was invoked using type arguments
@@ -978,7 +982,7 @@ protected boolean connectTypeVariables(TypeParameter[] typeParameters, boolean c
} else {
typeVariable.setSuperInterfaces(new ReferenceBinding[] {superRefType});
}
- typeVariable.tagBits |= superType.tagBits & TagBits.ContainsNestedTypeReferences;
+ typeVariable.tagBits |= superType.tagBits & (TagBits.ContainsNestedTypeReferences | TagBits.HasMissingType);
typeVariable.setFirstBound(superRefType); // first bound used to compute erasure
}
}
@@ -993,7 +997,7 @@ protected boolean connectTypeVariables(TypeParameter[] typeParameters, boolean c
typeVariable.tagBits |= TagBits.HierarchyHasProblems;
continue nextBound;
} else {
- typeVariable.tagBits |= superType.tagBits & TagBits.ContainsNestedTypeReferences;
+ typeVariable.tagBits |= superType.tagBits & (TagBits.ContainsNestedTypeReferences | TagBits.HasMissingType);
boolean didAlreadyComplain = !typeRef.resolvedType.isValidBinding();
if (isFirstBoundTypeVariable && j == 0) {
problemReporter().noAdditionalBoundAfterTypeVariable(typeRef);
@@ -1764,6 +1768,8 @@ public MethodBinding findMethod0(ReferenceBinding receiverType, char[] selector,
if (candidatesCount == 0)
candidates = new MethodBinding[foundSize];
candidates[candidatesCount++] = compatibleMethod;
+ } else if (compatibleMethod.problemId() == ProblemReasons.MissingTypeInSignature) {
+ return compatibleMethod; // use this method for error message to give a hint about the missing type
} else if (problemMethod == null) {
problemMethod = compatibleMethod;
}
@@ -2495,6 +2501,8 @@ public MethodBinding getConstructor0(ReferenceBinding receiverType, TypeBinding[
if (compatibleMethod != null) {
if (compatibleMethod.isValidBinding())
compatible[compatibleIndex++] = compatibleMethod;
+ else if (compatibleMethod.problemId() == ProblemReasons.MissingTypeInSignature)
+ return compatibleMethod; // use this method for error message to give a hint about the missing type
else if (problemMethod == null)
problemMethod = compatibleMethod;
}
@@ -4667,6 +4675,10 @@ protected final MethodBinding mostSpecificMethodBinding(MethodBinding[] visible,
int compatibleCount = 0;
for (int i = 0; i < visibleSize; i++)
if ((compatibilityLevels[i] = parameterCompatibilityLevel(visible[i], argumentTypes, invocationSite)) != NOT_COMPATIBLE) {
+ if (compatibilityLevels[i] == COMPATIBLE_IGNORING_MISSING_TYPE) {
+ // cannot conclusively select any candidate, use the method with missing types in the error message
+ return new ProblemMethodBinding(visible[i], visible[i].selector, visible[i].parameters, ProblemReasons.Ambiguous);
+ }
if (i != compatibleCount) {
visible[compatibleCount] = visible[i];
compatibilityLevels[compatibleCount] = compatibilityLevels[i];
@@ -5163,13 +5175,17 @@ public int parameterCompatibilityLevel(MethodBinding method, TypeBinding[] argum
TypeBinding param = ((ArrayBinding) parameters[lastIndex]).elementsType();
for (int i = lastIndex; i < argLength; i++) {
TypeBinding arg = (tiebreakingVarargsMethods && (i == (argLength - 1))) ? ((ArrayBinding)arguments[i]).elementsType() : arguments[i];
- if (TypeBinding.notEquals(param, arg) && parameterCompatibilityLevel(arg, param, env, tiebreakingVarargsMethods, method) == NOT_COMPATIBLE)
- return NOT_COMPATIBLE;
+ if (TypeBinding.notEquals(param, arg)) {
+ level = parameterCompatibilityLevel(arg, param, env, tiebreakingVarargsMethods, method);
+ if (level == NOT_COMPATIBLE)
+ return NOT_COMPATIBLE;
+ }
}
} else if (lastIndex != argLength) { // can call foo(int i, X ... x) with foo(1) but NOT foo();
return NOT_COMPATIBLE;
}
- level = VARARGS_COMPATIBLE; // varargs support needed
+ if (level != COMPATIBLE_IGNORING_MISSING_TYPE) // preserve any COMPATIBLE_IGNORING_MISSING_TYPE
+ level = VARARGS_COMPATIBLE; // varargs support needed
}
} else if (paramLength != argLength) {
return NOT_COMPATIBLE;
@@ -5180,10 +5196,13 @@ public int parameterCompatibilityLevel(MethodBinding method, TypeBinding[] argum
TypeBinding arg = (tiebreakingVarargsMethods && (i == (argLength - 1))) ? ((ArrayBinding)arguments[i]).elementsType() : arguments[i];
if (TypeBinding.notEquals(arg,param)) {
int newLevel = parameterCompatibilityLevel(arg, param, env, tiebreakingVarargsMethods, method);
- if (newLevel == NOT_COMPATIBLE)
+ if (newLevel == NOT_COMPATIBLE) {
return NOT_COMPATIBLE;
- if (newLevel > level)
+ } else if (newLevel == COMPATIBLE_IGNORING_MISSING_TYPE) {
level = newLevel;
+ } else if (newLevel > level && level != COMPATIBLE_IGNORING_MISSING_TYPE) {
+ level = newLevel;
+ }
}
}
return level;
@@ -5212,6 +5231,8 @@ private int parameterCompatibilityLevel(TypeBinding arg, TypeBinding param, Look
// only called if env.options.sourceLevel >= ClassFileConstants.JDK1_5
if (arg == null || param == null)
return NOT_COMPATIBLE;
+ if ((param.tagBits & TagBits.HasMissingType) != 0)
+ return COMPATIBLE_IGNORING_MISSING_TYPE;
if (arg instanceof PolyTypeBinding && !((PolyTypeBinding) arg).expression.isPertinentToApplicability(param, method)) {
if (arg.isPotentiallyCompatibleWith(param, this))
return COMPATIBLE;
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/SplitPackageBinding.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/SplitPackageBinding.java
index fd7284e376..ee1dc7a62f 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/SplitPackageBinding.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/SplitPackageBinding.java
@@ -13,9 +13,12 @@
*******************************************************************************/
package org.eclipse.jdt.internal.compiler.lookup;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Set;
+import java.util.function.Consumer;
import org.eclipse.jdt.core.compiler.CharOperation;
@@ -23,6 +26,9 @@ public class SplitPackageBinding extends PackageBinding {
Set declaringModules;
public Set incarnations;
+ /** TEST ONLY */
+ public static Consumer instanceListener;
+
/**
* Combine two potential package bindings, answering either the better of those if the other has a problem,
* or combine both into a split package.
@@ -51,6 +57,38 @@ public static PackageBinding combine(PackageBinding binding, PackageBinding prev
split.add(binding);
return split;
}
+ public static PackageBinding combineAll(List bindings, ModuleBinding primaryModule) {
+ // collect statistics per rank:
+ int[] numRanked = new int[RANK_VALID+1];
+ for (PackageBinding packageBinding : bindings) {
+ int rank = rank(packageBinding);
+ numRanked[rank]++;
+ }
+ SplitPackageBinding split = null;
+ for (int rank = RANK_VALID; rank >= 0; rank--) {
+ int num = numRanked[rank];
+ if (num > 0) {
+ // rank is the best we have, so take all bindings at this rank:
+ for (PackageBinding packageBinding : bindings) {
+ if (rank(packageBinding) == rank) {
+ if (num == 1 || rank != RANK_VALID) {
+ return packageBinding; // singleton, problem & null don't need SplitPackageBinding
+ }
+ // finally collect all relevant:
+ if (split == null)
+ split = new SplitPackageBinding(packageBinding, primaryModule);
+ else
+ split.add(packageBinding);
+ }
+ }
+ if (split.incarnations.size() == 1) // we don't want singleton SplitPackageBinding
+ return split.incarnations.iterator().next(); // simply peel the only incarnation
+ return split;
+ }
+ }
+ return null;
+ }
+ private static int RANK_VALID = 3;
private static int rank(PackageBinding candidate) {
if (candidate == null)
return 0;
@@ -58,7 +96,7 @@ private static int rank(PackageBinding candidate) {
return 1;
if (!candidate.isValidBinding())
return 2;
- return 3;
+ return RANK_VALID;
}
public SplitPackageBinding(PackageBinding initialBinding, ModuleBinding primaryModule) {
@@ -66,6 +104,10 @@ public SplitPackageBinding(PackageBinding initialBinding, ModuleBinding primaryM
this.declaringModules = new LinkedHashSet<>();
this.incarnations = new LinkedHashSet<>();
add(initialBinding);
+ // TEST hook:
+ if (instanceListener != null) {
+ instanceListener.accept(this);
+ }
}
public void add(PackageBinding packageBinding) {
if (packageBinding instanceof SplitPackageBinding) {
@@ -108,6 +150,7 @@ PackageBinding combineWithSiblings(PackageBinding childPackage, char[] name, Mod
ModuleBinding primaryModule = childPackage.enclosingModule;
// see if other incarnations contribute to the child package, too:
char[] flatName = CharOperation.concatWith(childPackage.compoundName, '.');
+ List bindings = new ArrayList<>();
for (PackageBinding incarnation : this.incarnations) {
ModuleBinding moduleBinding = incarnation.enclosingModule;
if (moduleBinding == module)
@@ -115,9 +158,13 @@ PackageBinding combineWithSiblings(PackageBinding childPackage, char[] name, Mod
if (childPackage.isDeclaredIn(moduleBinding))
continue;
PlainPackageBinding next = moduleBinding.getDeclaredPackage(flatName);
- childPackage = combine(next, childPackage, primaryModule);
+ if (next != null)
+ bindings.add(next);
}
- return childPackage;
+ if (bindings.isEmpty())
+ return childPackage;
+ bindings.add(childPackage);
+ return combineAll(bindings, primaryModule);
}
@Override
@@ -131,13 +178,14 @@ PackageBinding getPackage0(char[] name) {
if (knownPackage != null)
return knownPackage;
- PackageBinding candidate = null;
+ List bindings = new ArrayList<>();
for (PackageBinding incarnation : this.incarnations) {
PackageBinding package0 = incarnation.getPackage0(name);
if (package0 == null)
return null; // if any incarnation lacks cached info, a full findPackage will be necessary
- candidate = combine(package0, candidate, this.enclosingModule);
+ bindings.add(package0);
}
+ PackageBinding candidate = combineAll(bindings, this.enclosingModule);
if (candidate != null)
this.knownPackages.put(name, candidate);
@@ -150,15 +198,15 @@ PackageBinding getPackage0Any(char[] name) {
if (knownPackage != null)
return knownPackage;
- PackageBinding candidate = null;
+ List bindings = new ArrayList<>();
for (PackageBinding incarnation : this.incarnations) {
PackageBinding package0 = incarnation.getPackage0(name);
if (package0 == null)
continue;
- candidate = combine(package0, candidate, this.enclosingModule);
+ bindings.add(package0);
}
// don't cache the result, maybe incomplete
- return candidate;
+ return combineAll(bindings, this.enclosingModule);
}
@Override
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/TypeVariableBinding.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/TypeVariableBinding.java
index f7ef22e0f7..6ebe5afe16 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/TypeVariableBinding.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/lookup/TypeVariableBinding.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2020 IBM Corporation and others.
+ * Copyright (c) 2000, 2024 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -43,6 +43,7 @@
package org.eclipse.jdt.internal.compiler.lookup;
import java.util.Arrays;
+import java.util.List;
import java.util.Set;
import java.util.function.Consumer;
@@ -344,6 +345,25 @@ public int boundsCount() {
public boolean canBeInstantiated() {
return false;
}
+
+ @Override
+ public List collectMissingTypes(List missingTypes) {
+ if ((this.tagBits & TagBits.HasMissingType) != 0 && !this.inRecursiveFunction) {
+ this.inRecursiveFunction = true;
+ try {
+ if (this.superclass != null) {
+ missingTypes = this.superclass.collectMissingTypes(missingTypes);
+ }
+ for (ReferenceBinding superIfc : this.superInterfaces) {
+ missingTypes = superIfc.collectMissingTypes(missingTypes);
+ }
+ } finally {
+ this.inRecursiveFunction = false;
+ }
+ }
+ return missingTypes;
+ }
+
/**
* Collect the substitutes into a map for certain type variables inside the receiver type
* e.g. {@code Collection.collectSubstitutes(Collection>, Map)} will populate Map with: {@code T --> List}
@@ -711,6 +731,20 @@ public boolean isTypeVariable() {
return true;
}
+ @Override
+ public boolean isSealed() {
+ if (this.superclass != null && this.superclass.isSealed())
+ return true;
+
+ if (this.superInterfaces != null && this.superInterfaces != Binding.NO_SUPERINTERFACES) {
+ for (int i = 0, length = this.superInterfaces.length; i < length; i++) {
+ if (this.superInterfaces[i].isSealed())
+ return true;
+ }
+ }
+ return false;
+ }
+
// /**
// * Returns the original type variable for a given variable.
// * Only different from receiver for type variables of generic methods of parameterized types
@@ -805,7 +839,7 @@ ReferenceBinding resolve() {
TypeBinding oldSuperclass = this.superclass, oldFirstInterface = null;
if (this.superclass != null) {
ReferenceBinding resolveType = (ReferenceBinding) BinaryTypeBinding.resolveType(this.superclass, this.environment, true /* raw conversion */);
- this.tagBits |= resolveType.tagBits & TagBits.ContainsNestedTypeReferences;
+ this.tagBits |= resolveType.tagBits & (TagBits.ContainsNestedTypeReferences | TagBits.HasMissingType);
long superNullTagBits = resolveType.tagBits & TagBits.AnnotationNullMASK;
if (superNullTagBits != 0L) {
if (nullTagBits == 0L) {
@@ -824,7 +858,7 @@ ReferenceBinding resolve() {
oldFirstInterface = interfaces[0];
for (int i = length; --i >= 0;) {
ReferenceBinding resolveType = (ReferenceBinding) BinaryTypeBinding.resolveType(interfaces[i], this.environment, true /* raw conversion */);
- this.tagBits |= resolveType.tagBits & TagBits.ContainsNestedTypeReferences;
+ this.tagBits |= resolveType.tagBits & (TagBits.ContainsNestedTypeReferences | TagBits.HasMissingType);
long superNullTagBits = resolveType.tagBits & TagBits.AnnotationNullMASK;
if (superNullTagBits != 0L) {
if (nullTagBits == 0L) {
@@ -1074,8 +1108,8 @@ public TypeBinding setFirstBound(TypeBinding firstBound) {
annotatedType.firstBound = firstBound;
}
}
- if (firstBound != null && firstBound.hasNullTypeAnnotations())
- this.tagBits |= TagBits.HasNullTypeAnnotation;
+ if (firstBound != null)
+ this.tagBits |= firstBound.tagBits & (TagBits.HasNullTypeAnnotation|TagBits.HasMissingType);
return firstBound;
}
/* An annotated type variable use differs from its declaration exactly in its annotations and in nothing else.
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java
index 71553f6ea2..2df387dc48 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java
@@ -1233,7 +1233,7 @@ protected Object parseQualifiedName(boolean reset, boolean allowModule) throws I
case TerminalTokens.TokenNamenon_sealed:
case TerminalTokens.TokenNamenull:
case TerminalTokens.TokenNamepackage:
- case TerminalTokens.TokenNamepermits:
+ case TerminalTokens.TokenNameRestrictedIdentifierpermits:
case TerminalTokens.TokenNameprivate:
case TerminalTokens.TokenNameprotected:
case TerminalTokens.TokenNamepublic:
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/Parser.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/Parser.java
index 86ed1788f6..e4c4f6a8d2 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/Parser.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/Parser.java
@@ -4765,10 +4765,9 @@ protected void consumeInterfaceHeaderName1() {
}
protected void consumePermittedTypes() {
int length = this.astLengthStack[this.astLengthPtr--];
- //permitted types
this.astPtr -= length;
TypeDeclaration typeDecl = (TypeDeclaration) this.astStack[this.astPtr];
- typeDecl.restrictedIdentifierStart= this.intStack[this.intPtr--];
+ typeDecl.restrictedIdentifierStart = this.intStack[this.intPtr--];
System.arraycopy(
this.astStack,
this.astPtr + 1,
@@ -4779,7 +4778,7 @@ protected void consumePermittedTypes() {
rejectIllegalTypeAnnotations(typeReference);
}
typeDecl.bodyStart = typeDecl.permittedTypes[length-1].sourceEnd + 1;
- this.listLength = 0; // reset after having read super-interfaces
+ this.listLength = 0; // reset after having read permitted types.
// recovery
if (this.currentElement != null) {
this.lastCheckPoint = typeDecl.bodyStart;
@@ -6723,1726 +6722,1726 @@ protected void consumeZeroTypeAnnotations() {
// This method is part of an automatic generation : do NOT edit-modify
protected void consumeRule(int act) {
switch ( act ) {
- case 42 : if (DEBUG) { System.out.println("Type ::= PrimitiveType"); } //$NON-NLS-1$
+ case 43 : if (DEBUG) { System.out.println("Type ::= PrimitiveType"); } //$NON-NLS-1$
consumePrimitiveType(); break;
- case 56 : if (DEBUG) { System.out.println("ReferenceType ::= ClassOrInterfaceType"); } //$NON-NLS-1$
+ case 57 : if (DEBUG) { System.out.println("ReferenceType ::= ClassOrInterfaceType"); } //$NON-NLS-1$
consumeReferenceType(); break;
- case 60 : if (DEBUG) { System.out.println("ClassOrInterface ::= Name"); } //$NON-NLS-1$
+ case 61 : if (DEBUG) { System.out.println("ClassOrInterface ::= Name"); } //$NON-NLS-1$
consumeClassOrInterfaceName(); break;
- case 61 : if (DEBUG) { System.out.println("ClassOrInterface ::= GenericType DOT Name"); } //$NON-NLS-1$
+ case 62 : if (DEBUG) { System.out.println("ClassOrInterface ::= GenericType DOT Name"); } //$NON-NLS-1$
consumeClassOrInterface(); break;
- case 62 : if (DEBUG) { System.out.println("GenericType ::= ClassOrInterface TypeArguments"); } //$NON-NLS-1$
+ case 63 : if (DEBUG) { System.out.println("GenericType ::= ClassOrInterface TypeArguments"); } //$NON-NLS-1$
consumeGenericType(); break;
- case 63 : if (DEBUG) { System.out.println("GenericType ::= ClassOrInterface LESS GREATER"); } //$NON-NLS-1$
+ case 64 : if (DEBUG) { System.out.println("GenericType ::= ClassOrInterface LESS GREATER"); } //$NON-NLS-1$
consumeGenericTypeWithDiamond(); break;
- case 64 : if (DEBUG) { System.out.println("ArrayTypeWithTypeArgumentsName ::= GenericType DOT Name"); } //$NON-NLS-1$
+ case 65 : if (DEBUG) { System.out.println("ArrayTypeWithTypeArgumentsName ::= GenericType DOT Name"); } //$NON-NLS-1$
consumeArrayTypeWithTypeArgumentsName(); break;
- case 65 : if (DEBUG) { System.out.println("ArrayType ::= PrimitiveType Dims"); } //$NON-NLS-1$
+ case 66 : if (DEBUG) { System.out.println("ArrayType ::= PrimitiveType Dims"); } //$NON-NLS-1$
consumePrimitiveArrayType(); break;
- case 66 : if (DEBUG) { System.out.println("ArrayType ::= Name Dims"); } //$NON-NLS-1$
+ case 67 : if (DEBUG) { System.out.println("ArrayType ::= Name Dims"); } //$NON-NLS-1$
consumeNameArrayType(); break;
- case 67 : if (DEBUG) { System.out.println("ArrayType ::= ArrayTypeWithTypeArgumentsName Dims"); } //$NON-NLS-1$
+ case 68 : if (DEBUG) { System.out.println("ArrayType ::= ArrayTypeWithTypeArgumentsName Dims"); } //$NON-NLS-1$
consumeGenericTypeNameArrayType(); break;
- case 68 : if (DEBUG) { System.out.println("ArrayType ::= GenericType Dims"); } //$NON-NLS-1$
+ case 69 : if (DEBUG) { System.out.println("ArrayType ::= GenericType Dims"); } //$NON-NLS-1$
consumeGenericTypeArrayType(); break;
- case 70 : if (DEBUG) { System.out.println("Name ::= SimpleName"); } //$NON-NLS-1$
+ case 71 : if (DEBUG) { System.out.println("Name ::= SimpleName"); } //$NON-NLS-1$
consumeZeroTypeAnnotations(); break;
- case 75 : if (DEBUG) { System.out.println("UnannotatableName ::= UnannotatableName DOT SimpleName"); } //$NON-NLS-1$
+ case 76 : if (DEBUG) { System.out.println("UnannotatableName ::= UnannotatableName DOT SimpleName"); } //$NON-NLS-1$
consumeUnannotatableQualifiedName(); break;
- case 76 : if (DEBUG) { System.out.println("QualifiedName ::= Name DOT SimpleName"); } //$NON-NLS-1$
+ case 77 : if (DEBUG) { System.out.println("QualifiedName ::= Name DOT SimpleName"); } //$NON-NLS-1$
consumeQualifiedName(false); break;
- case 77 : if (DEBUG) { System.out.println("QualifiedName ::= Name DOT TypeAnnotations SimpleName"); } //$NON-NLS-1$
+ case 78 : if (DEBUG) { System.out.println("QualifiedName ::= Name DOT TypeAnnotations SimpleName"); } //$NON-NLS-1$
consumeQualifiedName(true); break;
- case 78 : if (DEBUG) { System.out.println("TypeAnnotationsopt ::="); } //$NON-NLS-1$
+ case 79 : if (DEBUG) { System.out.println("TypeAnnotationsopt ::="); } //$NON-NLS-1$
consumeZeroTypeAnnotations(); break;
- case 82 : if (DEBUG) { System.out.println("TypeAnnotations0 ::= TypeAnnotations0 TypeAnnotation"); } //$NON-NLS-1$
+ case 83 : if (DEBUG) { System.out.println("TypeAnnotations0 ::= TypeAnnotations0 TypeAnnotation"); } //$NON-NLS-1$
consumeOneMoreTypeAnnotation(); break;
- case 83 : if (DEBUG) { System.out.println("TypeAnnotation ::= NormalTypeAnnotation"); } //$NON-NLS-1$
+ case 84 : if (DEBUG) { System.out.println("TypeAnnotation ::= NormalTypeAnnotation"); } //$NON-NLS-1$
consumeTypeAnnotation(); break;
- case 84 : if (DEBUG) { System.out.println("TypeAnnotation ::= MarkerTypeAnnotation"); } //$NON-NLS-1$
+ case 85 : if (DEBUG) { System.out.println("TypeAnnotation ::= MarkerTypeAnnotation"); } //$NON-NLS-1$
consumeTypeAnnotation(); break;
- case 85 : if (DEBUG) { System.out.println("TypeAnnotation ::= SingleMemberTypeAnnotation"); } //$NON-NLS-1$
+ case 86 : if (DEBUG) { System.out.println("TypeAnnotation ::= SingleMemberTypeAnnotation"); } //$NON-NLS-1$
consumeTypeAnnotation(); break;
- case 86 : if (DEBUG) { System.out.println("TypeAnnotationName ::= AT308 UnannotatableName"); } //$NON-NLS-1$
+ case 87 : if (DEBUG) { System.out.println("TypeAnnotationName ::= AT308 UnannotatableName"); } //$NON-NLS-1$
consumeAnnotationName() ; break;
- case 87 : if (DEBUG) { System.out.println("NormalTypeAnnotation ::= TypeAnnotationName LPAREN..."); } //$NON-NLS-1$
+ case 88 : if (DEBUG) { System.out.println("NormalTypeAnnotation ::= TypeAnnotationName LPAREN..."); } //$NON-NLS-1$
consumeNormalAnnotation(true) ; break;
- case 88 : if (DEBUG) { System.out.println("MarkerTypeAnnotation ::= TypeAnnotationName"); } //$NON-NLS-1$
+ case 89 : if (DEBUG) { System.out.println("MarkerTypeAnnotation ::= TypeAnnotationName"); } //$NON-NLS-1$
consumeMarkerAnnotation(true) ; break;
- case 89 : if (DEBUG) { System.out.println("SingleMemberTypeAnnotation ::= TypeAnnotationName LPAREN"); } //$NON-NLS-1$
+ case 90 : if (DEBUG) { System.out.println("SingleMemberTypeAnnotation ::= TypeAnnotationName LPAREN"); } //$NON-NLS-1$
consumeSingleMemberAnnotation(true) ; break;
- case 90 : if (DEBUG) { System.out.println("RejectTypeAnnotations ::="); } //$NON-NLS-1$
+ case 91 : if (DEBUG) { System.out.println("RejectTypeAnnotations ::="); } //$NON-NLS-1$
consumeNonTypeUseName(); break;
- case 91 : if (DEBUG) { System.out.println("PushZeroTypeAnnotations ::="); } //$NON-NLS-1$
+ case 92 : if (DEBUG) { System.out.println("PushZeroTypeAnnotations ::="); } //$NON-NLS-1$
consumeZeroTypeAnnotations(); break;
- case 92 : if (DEBUG) { System.out.println("VariableDeclaratorIdOrThis ::= this"); } //$NON-NLS-1$
+ case 93 : if (DEBUG) { System.out.println("VariableDeclaratorIdOrThis ::= this"); } //$NON-NLS-1$
consumeExplicitThisParameter(false); break;
- case 93 : if (DEBUG) { System.out.println("VariableDeclaratorIdOrThis ::= UnannotatableName DOT this"); } //$NON-NLS-1$
+ case 94 : if (DEBUG) { System.out.println("VariableDeclaratorIdOrThis ::= UnannotatableName DOT this"); } //$NON-NLS-1$
consumeExplicitThisParameter(true); break;
- case 94 : if (DEBUG) { System.out.println("VariableDeclaratorIdOrThis ::= VariableDeclaratorId"); } //$NON-NLS-1$
+ case 95 : if (DEBUG) { System.out.println("VariableDeclaratorIdOrThis ::= VariableDeclaratorId"); } //$NON-NLS-1$
consumeVariableDeclaratorIdParameter(); break;
- case 95 : if (DEBUG) { System.out.println("CompilationUnit ::= EnterCompilationUnit..."); } //$NON-NLS-1$
+ case 96 : if (DEBUG) { System.out.println("CompilationUnit ::= EnterCompilationUnit..."); } //$NON-NLS-1$
consumeCompilationUnit(); break;
- case 96 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration"); } //$NON-NLS-1$
+ case 97 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration"); } //$NON-NLS-1$
consumeInternalCompilationUnit(); break;
- case 97 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$
+ case 98 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$
consumeInternalCompilationUnit(); break;
- case 98 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$
+ case 99 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$
consumeInternalCompilationUnitWithTypes(); break;
- case 99 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$
+ case 100 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$
consumeInternalCompilationUnitWithTypes(); break;
- case 100 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); } //$NON-NLS-1$
+ case 101 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); } //$NON-NLS-1$
consumeInternalCompilationUnit(); break;
- case 101 : if (DEBUG) { System.out.println("InternalCompilationUnit ::="); } //$NON-NLS-1$
+ case 102 : if (DEBUG) { System.out.println("InternalCompilationUnit ::="); } //$NON-NLS-1$
consumeEmptyInternalCompilationUnit(); break;
- case 102 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); } //$NON-NLS-1$
+ case 103 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); } //$NON-NLS-1$
consumeInternalCompilationUnitWithModuleDeclaration(); break;
- case 103 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ModuleDeclaration"); } //$NON-NLS-1$
+ case 104 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ModuleDeclaration"); } //$NON-NLS-1$
consumeInternalCompilationUnitWithModuleDeclaration(); break;
- case 104 : if (DEBUG) { System.out.println("ModuleDeclaration ::= ModuleHeader ModuleBody"); } //$NON-NLS-1$
+ case 105 : if (DEBUG) { System.out.println("ModuleDeclaration ::= ModuleHeader ModuleBody"); } //$NON-NLS-1$
consumeModuleDeclaration(); break;
- case 105 : if (DEBUG) { System.out.println("InternalCompilationUnit ::=..."); } //$NON-NLS-1$
+ case 106 : if (DEBUG) { System.out.println("InternalCompilationUnit ::=..."); } //$NON-NLS-1$
consumeInternalCompilationUnitWithPotentialImplicitlyDeclaredClass(); break;
- case 106 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); } //$NON-NLS-1$
+ case 107 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); } //$NON-NLS-1$
consumeInternalCompilationUnitWithPotentialImplicitlyDeclaredClass(); break;
- case 107 : if (DEBUG) { System.out.println("ModuleHeader ::= Modifiersopt ModuleModifieropt module"); } //$NON-NLS-1$
+ case 108 : if (DEBUG) { System.out.println("ModuleHeader ::= Modifiersopt ModuleModifieropt module"); } //$NON-NLS-1$
consumeModuleHeader(); break;
- case 109 : if (DEBUG) { System.out.println("ModuleModifieropt ::= ModuleModifier"); } //$NON-NLS-1$
+ case 110 : if (DEBUG) { System.out.println("ModuleModifieropt ::= ModuleModifier"); } //$NON-NLS-1$
consumeModuleModifiers(); break;
- case 112 : if (DEBUG) { System.out.println("ModuleStatementsOpt ::="); } //$NON-NLS-1$
+ case 113 : if (DEBUG) { System.out.println("ModuleStatementsOpt ::="); } //$NON-NLS-1$
consumeEmptyModuleStatementsOpt(); break;
- case 115 : if (DEBUG) { System.out.println("ModuleStatements ::= ModuleStatements ModuleStatement"); } //$NON-NLS-1$
+ case 116 : if (DEBUG) { System.out.println("ModuleStatements ::= ModuleStatements ModuleStatement"); } //$NON-NLS-1$
consumeModuleStatements(); break;
- case 121 : if (DEBUG) { System.out.println("RequiresStatement ::= SingleRequiresModuleName SEMICOLON"); } //$NON-NLS-1$
+ case 122 : if (DEBUG) { System.out.println("RequiresStatement ::= SingleRequiresModuleName SEMICOLON"); } //$NON-NLS-1$
consumeRequiresStatement(); break;
- case 122 : if (DEBUG) { System.out.println("SingleRequiresModuleName ::= requires..."); } //$NON-NLS-1$
+ case 123 : if (DEBUG) { System.out.println("SingleRequiresModuleName ::= requires..."); } //$NON-NLS-1$
consumeSingleRequiresModuleName(); break;
- case 123 : if (DEBUG) { System.out.println("RequiresModifiersopt ::= RequiresModifiers"); } //$NON-NLS-1$
+ case 124 : if (DEBUG) { System.out.println("RequiresModifiersopt ::= RequiresModifiers"); } //$NON-NLS-1$
consumeModifiers(); break;
- case 124 : if (DEBUG) { System.out.println("RequiresModifiersopt ::="); } //$NON-NLS-1$
+ case 125 : if (DEBUG) { System.out.println("RequiresModifiersopt ::="); } //$NON-NLS-1$
consumeDefaultModifiers(); break;
- case 126 : if (DEBUG) { System.out.println("RequiresModifiers ::= RequiresModifiers RequiresModifier"); } //$NON-NLS-1$
+ case 127 : if (DEBUG) { System.out.println("RequiresModifiers ::= RequiresModifiers RequiresModifier"); } //$NON-NLS-1$
consumeModifiers2(); break;
- case 129 : if (DEBUG) { System.out.println("ExportsStatement ::= ExportsHeader TargetModuleListopt"); } //$NON-NLS-1$
+ case 130 : if (DEBUG) { System.out.println("ExportsStatement ::= ExportsHeader TargetModuleListopt"); } //$NON-NLS-1$
consumeExportsStatement(); break;
- case 130 : if (DEBUG) { System.out.println("ExportsHeader ::= exports SinglePkgName"); } //$NON-NLS-1$
+ case 131 : if (DEBUG) { System.out.println("ExportsHeader ::= exports SinglePkgName"); } //$NON-NLS-1$
consumeExportsHeader(); break;
- case 132 : if (DEBUG) { System.out.println("TargetModuleListopt ::= to TargetModuleNameList"); } //$NON-NLS-1$
+ case 133 : if (DEBUG) { System.out.println("TargetModuleListopt ::= to TargetModuleNameList"); } //$NON-NLS-1$
consumeTargetModuleList(); break;
- case 133 : if (DEBUG) { System.out.println("TargetModuleName ::= UnannotatableName"); } //$NON-NLS-1$
+ case 134 : if (DEBUG) { System.out.println("TargetModuleName ::= UnannotatableName"); } //$NON-NLS-1$
consumeSingleTargetModuleName(); break;
- case 135 : if (DEBUG) { System.out.println("TargetModuleNameList ::= TargetModuleNameList COMMA..."); } //$NON-NLS-1$
+ case 136 : if (DEBUG) { System.out.println("TargetModuleNameList ::= TargetModuleNameList COMMA..."); } //$NON-NLS-1$
consumeTargetModuleNameList(); break;
- case 136 : if (DEBUG) { System.out.println("SinglePkgName ::= UnannotatableName"); } //$NON-NLS-1$
+ case 137 : if (DEBUG) { System.out.println("SinglePkgName ::= UnannotatableName"); } //$NON-NLS-1$
consumeSinglePkgName(); break;
- case 137 : if (DEBUG) { System.out.println("OpensStatement ::= OpensHeader TargetModuleListopt..."); } //$NON-NLS-1$
+ case 138 : if (DEBUG) { System.out.println("OpensStatement ::= OpensHeader TargetModuleListopt..."); } //$NON-NLS-1$
consumeOpensStatement(); break;
- case 138 : if (DEBUG) { System.out.println("OpensHeader ::= opens SinglePkgName"); } //$NON-NLS-1$
+ case 139 : if (DEBUG) { System.out.println("OpensHeader ::= opens SinglePkgName"); } //$NON-NLS-1$
consumeOpensHeader(); break;
- case 139 : if (DEBUG) { System.out.println("UsesStatement ::= UsesHeader SEMICOLON"); } //$NON-NLS-1$
+ case 140 : if (DEBUG) { System.out.println("UsesStatement ::= UsesHeader SEMICOLON"); } //$NON-NLS-1$
consumeUsesStatement(); break;
- case 140 : if (DEBUG) { System.out.println("UsesHeader ::= uses Name"); } //$NON-NLS-1$
+ case 141 : if (DEBUG) { System.out.println("UsesHeader ::= uses Name"); } //$NON-NLS-1$
consumeUsesHeader(); break;
- case 141 : if (DEBUG) { System.out.println("ProvidesStatement ::= ProvidesInterface WithClause..."); } //$NON-NLS-1$
+ case 142 : if (DEBUG) { System.out.println("ProvidesStatement ::= ProvidesInterface WithClause..."); } //$NON-NLS-1$
consumeProvidesStatement(); break;
- case 142 : if (DEBUG) { System.out.println("ProvidesInterface ::= provides Name"); } //$NON-NLS-1$
+ case 143 : if (DEBUG) { System.out.println("ProvidesInterface ::= provides Name"); } //$NON-NLS-1$
consumeProvidesInterface(); break;
- case 143 : if (DEBUG) { System.out.println("ServiceImplName ::= Name"); } //$NON-NLS-1$
+ case 144 : if (DEBUG) { System.out.println("ServiceImplName ::= Name"); } //$NON-NLS-1$
consumeSingleServiceImplName(); break;
- case 145 : if (DEBUG) { System.out.println("ServiceImplNameList ::= ServiceImplNameList COMMA..."); } //$NON-NLS-1$
+ case 146 : if (DEBUG) { System.out.println("ServiceImplNameList ::= ServiceImplNameList COMMA..."); } //$NON-NLS-1$
consumeServiceImplNameList(); break;
- case 146 : if (DEBUG) { System.out.println("WithClause ::= with ServiceImplNameList"); } //$NON-NLS-1$
+ case 147 : if (DEBUG) { System.out.println("WithClause ::= with ServiceImplNameList"); } //$NON-NLS-1$
consumeWithClause(); break;
- case 147 : if (DEBUG) { System.out.println("ReduceImports ::="); } //$NON-NLS-1$
+ case 148 : if (DEBUG) { System.out.println("ReduceImports ::="); } //$NON-NLS-1$
consumeReduceImports(); break;
- case 148 : if (DEBUG) { System.out.println("EnterCompilationUnit ::="); } //$NON-NLS-1$
+ case 149 : if (DEBUG) { System.out.println("EnterCompilationUnit ::="); } //$NON-NLS-1$
consumeEnterCompilationUnit(); break;
- case 171 : if (DEBUG) { System.out.println("CatchHeader ::= catch LPAREN CatchFormalParameter RPAREN"); } //$NON-NLS-1$
+ case 172 : if (DEBUG) { System.out.println("CatchHeader ::= catch LPAREN CatchFormalParameter RPAREN"); } //$NON-NLS-1$
consumeCatchHeader(); break;
- case 173 : if (DEBUG) { System.out.println("ImportDeclarations ::= ImportDeclarations..."); } //$NON-NLS-1$
+ case 174 : if (DEBUG) { System.out.println("ImportDeclarations ::= ImportDeclarations..."); } //$NON-NLS-1$
consumeImportDeclarations(); break;
- case 175 : if (DEBUG) { System.out.println("TypeDeclarations ::= TypeDeclarations TypeDeclaration"); } //$NON-NLS-1$
+ case 176 : if (DEBUG) { System.out.println("TypeDeclarations ::= TypeDeclarations TypeDeclaration"); } //$NON-NLS-1$
consumeTypeDeclarations(); break;
- case 176 : if (DEBUG) { System.out.println("PackageDeclaration ::= PackageDeclarationName SEMICOLON"); } //$NON-NLS-1$
+ case 177 : if (DEBUG) { System.out.println("PackageDeclaration ::= PackageDeclarationName SEMICOLON"); } //$NON-NLS-1$
consumePackageDeclaration(); break;
- case 177 : if (DEBUG) { System.out.println("PackageDeclarationName ::= Modifiers package..."); } //$NON-NLS-1$
+ case 178 : if (DEBUG) { System.out.println("PackageDeclarationName ::= Modifiers package..."); } //$NON-NLS-1$
consumePackageDeclarationNameWithModifiers(); break;
- case 178 : if (DEBUG) { System.out.println("PackageDeclarationName ::= PackageComment package Name"); } //$NON-NLS-1$
+ case 179 : if (DEBUG) { System.out.println("PackageDeclarationName ::= PackageComment package Name"); } //$NON-NLS-1$
consumePackageDeclarationName(); break;
- case 179 : if (DEBUG) { System.out.println("PackageComment ::="); } //$NON-NLS-1$
+ case 180 : if (DEBUG) { System.out.println("PackageComment ::="); } //$NON-NLS-1$
consumePackageComment(); break;
- case 184 : if (DEBUG) { System.out.println("SingleTypeImportDeclaration ::=..."); } //$NON-NLS-1$
+ case 185 : if (DEBUG) { System.out.println("SingleTypeImportDeclaration ::=..."); } //$NON-NLS-1$
consumeImportDeclaration(); break;
- case 185 : if (DEBUG) { System.out.println("SingleTypeImportDeclarationName ::= import Name..."); } //$NON-NLS-1$
+ case 186 : if (DEBUG) { System.out.println("SingleTypeImportDeclarationName ::= import Name..."); } //$NON-NLS-1$
consumeSingleTypeImportDeclarationName(); break;
- case 186 : if (DEBUG) { System.out.println("TypeImportOnDemandDeclaration ::=..."); } //$NON-NLS-1$
+ case 187 : if (DEBUG) { System.out.println("TypeImportOnDemandDeclaration ::=..."); } //$NON-NLS-1$
consumeImportDeclaration(); break;
- case 187 : if (DEBUG) { System.out.println("TypeImportOnDemandDeclarationName ::= import Name DOT..."); } //$NON-NLS-1$
+ case 188 : if (DEBUG) { System.out.println("TypeImportOnDemandDeclarationName ::= import Name DOT..."); } //$NON-NLS-1$
consumeTypeImportOnDemandDeclarationName(); break;
- case 190 : if (DEBUG) { System.out.println("TypeDeclaration ::= SEMICOLON"); } //$NON-NLS-1$
+ case 191 : if (DEBUG) { System.out.println("TypeDeclaration ::= SEMICOLON"); } //$NON-NLS-1$
consumeEmptyTypeDeclaration(); break;
- case 195 : if (DEBUG) { System.out.println("Modifiers ::= Modifiers Modifier"); } //$NON-NLS-1$
+ case 196 : if (DEBUG) { System.out.println("Modifiers ::= Modifiers Modifier"); } //$NON-NLS-1$
consumeModifiers2(); break;
- case 209 : if (DEBUG) { System.out.println("Modifier ::= Annotation"); } //$NON-NLS-1$
+ case 210 : if (DEBUG) { System.out.println("Modifier ::= Annotation"); } //$NON-NLS-1$
consumeAnnotationAsModifier(); break;
- case 210 : if (DEBUG) { System.out.println("ClassDeclaration ::= ClassHeader ClassBody"); } //$NON-NLS-1$
+ case 211 : if (DEBUG) { System.out.println("ClassDeclaration ::= ClassHeader ClassBody"); } //$NON-NLS-1$
consumeClassDeclaration(); break;
- case 211 : if (DEBUG) { System.out.println("ClassHeader ::= ClassHeaderName ClassHeaderExtendsopt..."); } //$NON-NLS-1$
+ case 212 : if (DEBUG) { System.out.println("ClassHeader ::= ClassHeaderName ClassHeaderExtendsopt..."); } //$NON-NLS-1$
consumeClassHeader(); break;
- case 212 : if (DEBUG) { System.out.println("ClassHeaderName ::= ClassHeaderName1 TypeParameters"); } //$NON-NLS-1$
+ case 213 : if (DEBUG) { System.out.println("ClassHeaderName ::= ClassHeaderName1 TypeParameters"); } //$NON-NLS-1$
consumeTypeHeaderNameWithTypeParameters(); break;
- case 214 : if (DEBUG) { System.out.println("ClassHeaderName1 ::= Modifiersopt class Identifier"); } //$NON-NLS-1$
+ case 215 : if (DEBUG) { System.out.println("ClassHeaderName1 ::= Modifiersopt class Identifier"); } //$NON-NLS-1$
consumeClassHeaderName1(); break;
- case 215 : if (DEBUG) { System.out.println("ClassHeaderExtends ::= extends ClassType"); } //$NON-NLS-1$
+ case 216 : if (DEBUG) { System.out.println("ClassHeaderExtends ::= extends ClassType"); } //$NON-NLS-1$
consumeClassHeaderExtends(); break;
- case 216 : if (DEBUG) { System.out.println("ClassHeaderImplements ::= implements InterfaceTypeList"); } //$NON-NLS-1$
+ case 217 : if (DEBUG) { System.out.println("ClassHeaderImplements ::= implements InterfaceTypeList"); } //$NON-NLS-1$
consumeClassHeaderImplements(); break;
- case 218 : if (DEBUG) { System.out.println("InterfaceTypeList ::= InterfaceTypeList COMMA..."); } //$NON-NLS-1$
+ case 219 : if (DEBUG) { System.out.println("InterfaceTypeList ::= InterfaceTypeList COMMA..."); } //$NON-NLS-1$
consumeInterfaceTypeList(); break;
- case 219 : if (DEBUG) { System.out.println("InterfaceType ::= ClassOrInterfaceType"); } //$NON-NLS-1$
+ case 220 : if (DEBUG) { System.out.println("InterfaceType ::= ClassOrInterfaceType"); } //$NON-NLS-1$
consumeInterfaceType(); break;
- case 222 : if (DEBUG) { System.out.println("ClassBodyDeclarations ::= ClassBodyDeclarations..."); } //$NON-NLS-1$
+ case 223 : if (DEBUG) { System.out.println("ClassBodyDeclarations ::= ClassBodyDeclarations..."); } //$NON-NLS-1$
consumeClassBodyDeclarations(); break;
- case 227 : if (DEBUG) { System.out.println("ImplicitlyDeclaredClassBodyDeclarations ::=..."); } //$NON-NLS-1$
+ case 228 : if (DEBUG) { System.out.println("ImplicitlyDeclaredClassBodyDeclarations ::=..."); } //$NON-NLS-1$
consumeImplicitlyDeclaredClassBodyDeclarations(); break;
- case 228 : if (DEBUG) { System.out.println("ClassBodyDeclaration ::= Diet NestedMethod..."); } //$NON-NLS-1$
+ case 229 : if (DEBUG) { System.out.println("ClassBodyDeclaration ::= Diet NestedMethod..."); } //$NON-NLS-1$
consumeClassBodyDeclaration(); break;
- case 229 : if (DEBUG) { System.out.println("Diet ::="); } //$NON-NLS-1$
+ case 230 : if (DEBUG) { System.out.println("Diet ::="); } //$NON-NLS-1$
consumeDiet(); break;
- case 230 : if (DEBUG) { System.out.println("Initializer ::= Diet NestedMethod CreateInitializer..."); } //$NON-NLS-1$
+ case 231 : if (DEBUG) { System.out.println("Initializer ::= Diet NestedMethod CreateInitializer..."); } //$NON-NLS-1$
consumeClassBodyDeclaration(); break;
- case 231 : if (DEBUG) { System.out.println("CreateInitializer ::="); } //$NON-NLS-1$
+ case 232 : if (DEBUG) { System.out.println("CreateInitializer ::="); } //$NON-NLS-1$
consumeCreateInitializer(); break;
- case 239 : if (DEBUG) { System.out.println("ClassMemberDeclaration ::= SEMICOLON"); } //$NON-NLS-1$
+ case 240 : if (DEBUG) { System.out.println("ClassMemberDeclaration ::= SEMICOLON"); } //$NON-NLS-1$
consumeEmptyTypeDeclaration(); break;
- case 242 : if (DEBUG) { System.out.println("FieldDeclaration ::= Modifiersopt Type..."); } //$NON-NLS-1$
+ case 243 : if (DEBUG) { System.out.println("FieldDeclaration ::= Modifiersopt Type..."); } //$NON-NLS-1$
consumeFieldDeclaration(); break;
- case 244 : if (DEBUG) { System.out.println("VariableDeclarators ::= VariableDeclarators COMMA..."); } //$NON-NLS-1$
+ case 245 : if (DEBUG) { System.out.println("VariableDeclarators ::= VariableDeclarators COMMA..."); } //$NON-NLS-1$
consumeVariableDeclarators(); break;
- case 247 : if (DEBUG) { System.out.println("EnterVariable ::="); } //$NON-NLS-1$
+ case 248 : if (DEBUG) { System.out.println("EnterVariable ::="); } //$NON-NLS-1$
consumeEnterVariable(); break;
- case 248 : if (DEBUG) { System.out.println("ExitVariableWithInitialization ::="); } //$NON-NLS-1$
+ case 249 : if (DEBUG) { System.out.println("ExitVariableWithInitialization ::="); } //$NON-NLS-1$
consumeExitVariableWithInitialization(); break;
- case 249 : if (DEBUG) { System.out.println("ExitVariableWithoutInitialization ::="); } //$NON-NLS-1$
+ case 250 : if (DEBUG) { System.out.println("ExitVariableWithoutInitialization ::="); } //$NON-NLS-1$
consumeExitVariableWithoutInitialization(); break;
- case 250 : if (DEBUG) { System.out.println("ForceNoDiet ::="); } //$NON-NLS-1$
+ case 251 : if (DEBUG) { System.out.println("ForceNoDiet ::="); } //$NON-NLS-1$
consumeForceNoDiet(); break;
- case 251 : if (DEBUG) { System.out.println("RestoreDiet ::="); } //$NON-NLS-1$
+ case 252 : if (DEBUG) { System.out.println("RestoreDiet ::="); } //$NON-NLS-1$
consumeRestoreDiet(); break;
- case 253 : if (DEBUG) { System.out.println("VariableDeclaratorId ::= UNDERSCORE"); } //$NON-NLS-1$
+ case 254 : if (DEBUG) { System.out.println("VariableDeclaratorId ::= UNDERSCORE"); } //$NON-NLS-1$
consumeUnnamedVariable(); break;
- case 257 : if (DEBUG) { System.out.println("MethodDeclaration ::= MethodHeader MethodBody"); } //$NON-NLS-1$
+ case 258 : if (DEBUG) { System.out.println("MethodDeclaration ::= MethodHeader MethodBody"); } //$NON-NLS-1$
// set to true to consume a method with a body
consumeMethodDeclaration(true, false); break;
- case 258 : if (DEBUG) { System.out.println("MethodDeclaration ::= DefaultMethodHeader MethodBody"); } //$NON-NLS-1$
+ case 259 : if (DEBUG) { System.out.println("MethodDeclaration ::= DefaultMethodHeader MethodBody"); } //$NON-NLS-1$
// set to true to consume a method with a body
consumeMethodDeclaration(true, true); break;
- case 259 : if (DEBUG) { System.out.println("AbstractMethodDeclaration ::= MethodHeader SEMICOLON"); } //$NON-NLS-1$
+ case 260 : if (DEBUG) { System.out.println("AbstractMethodDeclaration ::= MethodHeader SEMICOLON"); } //$NON-NLS-1$
// set to false to consume a method without body
consumeMethodDeclaration(false, false); break;
- case 260 : if (DEBUG) { System.out.println("MethodHeader ::= MethodHeaderName FormalParameterListopt"); } //$NON-NLS-1$
+ case 261 : if (DEBUG) { System.out.println("MethodHeader ::= MethodHeaderName FormalParameterListopt"); } //$NON-NLS-1$
consumeMethodHeader(); break;
- case 261 : if (DEBUG) { System.out.println("DefaultMethodHeader ::= DefaultMethodHeaderName..."); } //$NON-NLS-1$
+ case 262 : if (DEBUG) { System.out.println("DefaultMethodHeader ::= DefaultMethodHeaderName..."); } //$NON-NLS-1$
consumeMethodHeader(); break;
- case 262 : if (DEBUG) { System.out.println("MethodHeaderName ::= Modifiersopt TypeParameters Type..."); } //$NON-NLS-1$
+ case 263 : if (DEBUG) { System.out.println("MethodHeaderName ::= Modifiersopt TypeParameters Type..."); } //$NON-NLS-1$
consumeMethodHeaderNameWithTypeParameters(false); break;
- case 263 : if (DEBUG) { System.out.println("MethodHeaderName ::= Modifiersopt Type Identifier LPAREN"); } //$NON-NLS-1$
+ case 264 : if (DEBUG) { System.out.println("MethodHeaderName ::= Modifiersopt Type Identifier LPAREN"); } //$NON-NLS-1$
consumeMethodHeaderName(false); break;
- case 264 : if (DEBUG) { System.out.println("DefaultMethodHeaderName ::= ModifiersWithDefault..."); } //$NON-NLS-1$
+ case 265 : if (DEBUG) { System.out.println("DefaultMethodHeaderName ::= ModifiersWithDefault..."); } //$NON-NLS-1$
consumeMethodHeaderNameWithTypeParameters(false); break;
- case 265 : if (DEBUG) { System.out.println("DefaultMethodHeaderName ::= ModifiersWithDefault Type..."); } //$NON-NLS-1$
+ case 266 : if (DEBUG) { System.out.println("DefaultMethodHeaderName ::= ModifiersWithDefault Type..."); } //$NON-NLS-1$
consumeMethodHeaderName(false); break;
- case 266 : if (DEBUG) { System.out.println("ModifiersWithDefault ::= Modifiersopt default..."); } //$NON-NLS-1$
+ case 267 : if (DEBUG) { System.out.println("ModifiersWithDefault ::= Modifiersopt default..."); } //$NON-NLS-1$
consumePushCombineModifiers(); break;
- case 267 : if (DEBUG) { System.out.println("MethodHeaderRightParen ::= RPAREN"); } //$NON-NLS-1$
+ case 268 : if (DEBUG) { System.out.println("MethodHeaderRightParen ::= RPAREN"); } //$NON-NLS-1$
consumeMethodHeaderRightParen(); break;
- case 268 : if (DEBUG) { System.out.println("MethodHeaderExtendedDims ::= Dimsopt"); } //$NON-NLS-1$
+ case 269 : if (DEBUG) { System.out.println("MethodHeaderExtendedDims ::= Dimsopt"); } //$NON-NLS-1$
consumeMethodHeaderExtendedDims(); break;
- case 269 : if (DEBUG) { System.out.println("MethodHeaderThrowsClause ::= throws ClassTypeList"); } //$NON-NLS-1$
+ case 270 : if (DEBUG) { System.out.println("MethodHeaderThrowsClause ::= throws ClassTypeList"); } //$NON-NLS-1$
consumeMethodHeaderThrowsClause(); break;
- case 270 : if (DEBUG) { System.out.println("ConstructorHeader ::= ConstructorHeaderName..."); } //$NON-NLS-1$
+ case 271 : if (DEBUG) { System.out.println("ConstructorHeader ::= ConstructorHeaderName..."); } //$NON-NLS-1$
consumeConstructorHeader(); break;
- case 271 : if (DEBUG) { System.out.println("ConstructorHeaderName ::= Modifiersopt TypeParameters..."); } //$NON-NLS-1$
+ case 272 : if (DEBUG) { System.out.println("ConstructorHeaderName ::= Modifiersopt TypeParameters..."); } //$NON-NLS-1$
consumeConstructorHeaderNameWithTypeParameters(); break;
- case 272 : if (DEBUG) { System.out.println("ConstructorHeaderName ::= Modifiersopt Identifier LPAREN"); } //$NON-NLS-1$
+ case 273 : if (DEBUG) { System.out.println("ConstructorHeaderName ::= Modifiersopt Identifier LPAREN"); } //$NON-NLS-1$
consumeConstructorHeaderName(); break;
- case 274 : if (DEBUG) { System.out.println("FormalParameterList ::= FormalParameterList COMMA..."); } //$NON-NLS-1$
+ case 275 : if (DEBUG) { System.out.println("FormalParameterList ::= FormalParameterList COMMA..."); } //$NON-NLS-1$
consumeFormalParameterList(); break;
- case 275 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Type..."); } //$NON-NLS-1$
+ case 276 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Type..."); } //$NON-NLS-1$
consumeFormalParameter(false); break;
- case 276 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Type..."); } //$NON-NLS-1$
+ case 277 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Type..."); } //$NON-NLS-1$
consumeFormalParameter(true); break;
- case 277 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Type AT308DOTDOTDOT..."); } //$NON-NLS-1$
+ case 278 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Type AT308DOTDOTDOT..."); } //$NON-NLS-1$
consumeFormalParameter(true); break;
- case 278 : if (DEBUG) { System.out.println("CatchFormalParameter ::= Modifiersopt CatchType..."); } //$NON-NLS-1$
+ case 279 : if (DEBUG) { System.out.println("CatchFormalParameter ::= Modifiersopt CatchType..."); } //$NON-NLS-1$
consumeCatchFormalParameter(); break;
- case 279 : if (DEBUG) { System.out.println("CatchType ::= UnionType"); } //$NON-NLS-1$
+ case 280 : if (DEBUG) { System.out.println("CatchType ::= UnionType"); } //$NON-NLS-1$
consumeCatchType(); break;
- case 280 : if (DEBUG) { System.out.println("UnionType ::= Type"); } //$NON-NLS-1$
+ case 281 : if (DEBUG) { System.out.println("UnionType ::= Type"); } //$NON-NLS-1$
consumeUnionTypeAsClassType(); break;
- case 281 : if (DEBUG) { System.out.println("UnionType ::= UnionType OR Type"); } //$NON-NLS-1$
+ case 282 : if (DEBUG) { System.out.println("UnionType ::= UnionType OR Type"); } //$NON-NLS-1$
consumeUnionType(); break;
- case 283 : if (DEBUG) { System.out.println("ClassTypeList ::= ClassTypeList COMMA ClassTypeElt"); } //$NON-NLS-1$
+ case 284 : if (DEBUG) { System.out.println("ClassTypeList ::= ClassTypeList COMMA ClassTypeElt"); } //$NON-NLS-1$
consumeClassTypeList(); break;
- case 284 : if (DEBUG) { System.out.println("ClassTypeElt ::= ClassType"); } //$NON-NLS-1$
+ case 285 : if (DEBUG) { System.out.println("ClassTypeElt ::= ClassType"); } //$NON-NLS-1$
consumeClassTypeElt(); break;
- case 285 : if (DEBUG) { System.out.println("MethodBody ::= NestedMethod LBRACE BlockStatementsopt..."); } //$NON-NLS-1$
+ case 286 : if (DEBUG) { System.out.println("MethodBody ::= NestedMethod LBRACE BlockStatementsopt..."); } //$NON-NLS-1$
consumeMethodBody(); break;
- case 286 : if (DEBUG) { System.out.println("NestedMethod ::="); } //$NON-NLS-1$
+ case 287 : if (DEBUG) { System.out.println("NestedMethod ::="); } //$NON-NLS-1$
consumeNestedMethod(); break;
- case 287 : if (DEBUG) { System.out.println("StaticInitializer ::= StaticOnly Block"); } //$NON-NLS-1$
+ case 288 : if (DEBUG) { System.out.println("StaticInitializer ::= StaticOnly Block"); } //$NON-NLS-1$
consumeStaticInitializer(); break;
- case 288 : if (DEBUG) { System.out.println("StaticOnly ::= static"); } //$NON-NLS-1$
+ case 289 : if (DEBUG) { System.out.println("StaticOnly ::= static"); } //$NON-NLS-1$
consumeStaticOnly(); break;
- case 289 : if (DEBUG) { System.out.println("ConstructorDeclaration ::= ConstructorHeader MethodBody"); } //$NON-NLS-1$
+ case 290 : if (DEBUG) { System.out.println("ConstructorDeclaration ::= ConstructorHeader MethodBody"); } //$NON-NLS-1$
consumeConstructorDeclaration() ; break;
- case 290 : if (DEBUG) { System.out.println("ConstructorDeclaration ::= ConstructorHeader SEMICOLON"); } //$NON-NLS-1$
+ case 291 : if (DEBUG) { System.out.println("ConstructorDeclaration ::= ConstructorHeader SEMICOLON"); } //$NON-NLS-1$
consumeInvalidConstructorDeclaration() ; break;
- case 291 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= this LPAREN..."); } //$NON-NLS-1$
+ case 292 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= this LPAREN..."); } //$NON-NLS-1$
consumeExplicitConstructorInvocation(0, THIS_CALL); break;
- case 292 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= OnlyTypeArguments this"); } //$NON-NLS-1$
+ case 293 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= OnlyTypeArguments this"); } //$NON-NLS-1$
consumeExplicitConstructorInvocationWithTypeArguments(0,THIS_CALL); break;
- case 293 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= super LPAREN..."); } //$NON-NLS-1$
+ case 294 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= super LPAREN..."); } //$NON-NLS-1$
consumeExplicitConstructorInvocation(0,SUPER_CALL); break;
- case 294 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= OnlyTypeArguments..."); } //$NON-NLS-1$
+ case 295 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= OnlyTypeArguments..."); } //$NON-NLS-1$
consumeExplicitConstructorInvocationWithTypeArguments(0,SUPER_CALL); break;
- case 295 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT super..."); } //$NON-NLS-1$
+ case 296 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT super..."); } //$NON-NLS-1$
consumeExplicitConstructorInvocation(1, SUPER_CALL); break;
- case 296 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT..."); } //$NON-NLS-1$
+ case 297 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT..."); } //$NON-NLS-1$
consumeExplicitConstructorInvocationWithTypeArguments(1, SUPER_CALL); break;
- case 297 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT super LPAREN"); } //$NON-NLS-1$
+ case 298 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT super LPAREN"); } //$NON-NLS-1$
consumeExplicitConstructorInvocation(2, SUPER_CALL); break;
- case 298 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT..."); } //$NON-NLS-1$
+ case 299 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT..."); } //$NON-NLS-1$
consumeExplicitConstructorInvocationWithTypeArguments(2, SUPER_CALL); break;
- case 299 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT this..."); } //$NON-NLS-1$
+ case 300 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT this..."); } //$NON-NLS-1$
consumeExplicitConstructorInvocation(1, THIS_CALL); break;
- case 300 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT..."); } //$NON-NLS-1$
+ case 301 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT..."); } //$NON-NLS-1$
consumeExplicitConstructorInvocationWithTypeArguments(1, THIS_CALL); break;
- case 301 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT this LPAREN"); } //$NON-NLS-1$
+ case 302 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT this LPAREN"); } //$NON-NLS-1$
consumeExplicitConstructorInvocation(2, THIS_CALL); break;
- case 302 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT..."); } //$NON-NLS-1$
+ case 303 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT..."); } //$NON-NLS-1$
consumeExplicitConstructorInvocationWithTypeArguments(2, THIS_CALL); break;
- case 303 : if (DEBUG) { System.out.println("InterfaceDeclaration ::= InterfaceHeader InterfaceBody"); } //$NON-NLS-1$
+ case 304 : if (DEBUG) { System.out.println("InterfaceDeclaration ::= InterfaceHeader InterfaceBody"); } //$NON-NLS-1$
consumeInterfaceDeclaration(); break;
- case 304 : if (DEBUG) { System.out.println("InterfaceHeader ::= InterfaceHeaderName..."); } //$NON-NLS-1$
+ case 305 : if (DEBUG) { System.out.println("InterfaceHeader ::= InterfaceHeaderName..."); } //$NON-NLS-1$
consumeInterfaceHeader(); break;
- case 305 : if (DEBUG) { System.out.println("InterfaceHeaderName ::= InterfaceHeaderName1..."); } //$NON-NLS-1$
+ case 306 : if (DEBUG) { System.out.println("InterfaceHeaderName ::= InterfaceHeaderName1..."); } //$NON-NLS-1$
consumeTypeHeaderNameWithTypeParameters(); break;
- case 307 : if (DEBUG) { System.out.println("InterfaceHeaderName1 ::= Modifiersopt interface..."); } //$NON-NLS-1$
+ case 308 : if (DEBUG) { System.out.println("InterfaceHeaderName1 ::= Modifiersopt interface..."); } //$NON-NLS-1$
consumeInterfaceHeaderName1(); break;
- case 308 : if (DEBUG) { System.out.println("InterfaceHeaderExtends ::= extends InterfaceTypeList"); } //$NON-NLS-1$
+ case 309 : if (DEBUG) { System.out.println("InterfaceHeaderExtends ::= extends InterfaceTypeList"); } //$NON-NLS-1$
consumeInterfaceHeaderExtends(); break;
- case 311 : if (DEBUG) { System.out.println("InterfaceMemberDeclarations ::=..."); } //$NON-NLS-1$
+ case 312 : if (DEBUG) { System.out.println("InterfaceMemberDeclarations ::=..."); } //$NON-NLS-1$
consumeInterfaceMemberDeclarations(); break;
- case 312 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= SEMICOLON"); } //$NON-NLS-1$
+ case 313 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= SEMICOLON"); } //$NON-NLS-1$
consumeEmptyTypeDeclaration(); break;
- case 314 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= DefaultMethodHeader..."); } //$NON-NLS-1$
+ case 315 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= DefaultMethodHeader..."); } //$NON-NLS-1$
consumeInterfaceMethodDeclaration(false); break;
- case 315 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= MethodHeader MethodBody"); } //$NON-NLS-1$
+ case 316 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= MethodHeader MethodBody"); } //$NON-NLS-1$
consumeInterfaceMethodDeclaration(false); break;
- case 316 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= DefaultMethodHeader..."); } //$NON-NLS-1$
+ case 317 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= DefaultMethodHeader..."); } //$NON-NLS-1$
consumeInterfaceMethodDeclaration(true); break;
- case 317 : if (DEBUG) { System.out.println("InvalidConstructorDeclaration ::= ConstructorHeader..."); } //$NON-NLS-1$
+ case 318 : if (DEBUG) { System.out.println("InvalidConstructorDeclaration ::= ConstructorHeader..."); } //$NON-NLS-1$
consumeInvalidConstructorDeclaration(true); break;
- case 318 : if (DEBUG) { System.out.println("InvalidConstructorDeclaration ::= ConstructorHeader..."); } //$NON-NLS-1$
+ case 319 : if (DEBUG) { System.out.println("InvalidConstructorDeclaration ::= ConstructorHeader..."); } //$NON-NLS-1$
consumeInvalidConstructorDeclaration(false); break;
- case 329 : if (DEBUG) { System.out.println("RecordDeclaration ::= RecordHeaderPart RecordBody"); } //$NON-NLS-1$
+ case 330 : if (DEBUG) { System.out.println("RecordDeclaration ::= RecordHeaderPart RecordBody"); } //$NON-NLS-1$
consumeRecordDeclaration(); break;
- case 330 : if (DEBUG) { System.out.println("RecordHeaderPart ::= RecordHeaderName RecordHeader..."); } //$NON-NLS-1$
+ case 331 : if (DEBUG) { System.out.println("RecordHeaderPart ::= RecordHeaderName RecordHeader..."); } //$NON-NLS-1$
consumeRecordHeaderPart(); break;
- case 331 : if (DEBUG) { System.out.println("RecordHeaderName ::= RecordHeaderName1 TypeParameters"); } //$NON-NLS-1$
+ case 332 : if (DEBUG) { System.out.println("RecordHeaderName ::= RecordHeaderName1 TypeParameters"); } //$NON-NLS-1$
consumeRecordHeaderNameWithTypeParameters(); break;
- case 333 : if (DEBUG) { System.out.println("RecordHeaderName1 ::= Modifiersopt..."); } //$NON-NLS-1$
+ case 334 : if (DEBUG) { System.out.println("RecordHeaderName1 ::= Modifiersopt..."); } //$NON-NLS-1$
consumeRecordHeaderName1(); break;
- case 334 : if (DEBUG) { System.out.println("RecordComponentHeaderRightParen ::= RPAREN"); } //$NON-NLS-1$
+ case 335 : if (DEBUG) { System.out.println("RecordComponentHeaderRightParen ::= RPAREN"); } //$NON-NLS-1$
consumeRecordComponentHeaderRightParen(); break;
- case 335 : if (DEBUG) { System.out.println("RecordHeader ::= LPAREN RecordComponentsopt..."); } //$NON-NLS-1$
+ case 336 : if (DEBUG) { System.out.println("RecordHeader ::= LPAREN RecordComponentsopt..."); } //$NON-NLS-1$
consumeRecordHeader(); break;
- case 336 : if (DEBUG) { System.out.println("RecordComponentsopt ::="); } //$NON-NLS-1$
+ case 337 : if (DEBUG) { System.out.println("RecordComponentsopt ::="); } //$NON-NLS-1$
consumeRecordComponentsopt(); break;
- case 339 : if (DEBUG) { System.out.println("RecordComponents ::= RecordComponents COMMA..."); } //$NON-NLS-1$
+ case 340 : if (DEBUG) { System.out.println("RecordComponents ::= RecordComponents COMMA..."); } //$NON-NLS-1$
consumeRecordComponents(); break;
- case 341 : if (DEBUG) { System.out.println("RecordComponent ::= Modifiersopt Type..."); } //$NON-NLS-1$
+ case 342 : if (DEBUG) { System.out.println("RecordComponent ::= Modifiersopt Type..."); } //$NON-NLS-1$
consumeRecordComponent(false); break;
- case 342 : if (DEBUG) { System.out.println("VariableArityRecordComponent ::= Modifiersopt Type..."); } //$NON-NLS-1$
+ case 343 : if (DEBUG) { System.out.println("VariableArityRecordComponent ::= Modifiersopt Type..."); } //$NON-NLS-1$
consumeRecordComponent(true); break;
- case 343 : if (DEBUG) { System.out.println("VariableArityRecordComponent ::= Modifiersopt Type..."); } //$NON-NLS-1$
+ case 344 : if (DEBUG) { System.out.println("VariableArityRecordComponent ::= Modifiersopt Type..."); } //$NON-NLS-1$
consumeRecordComponent(true); break;
- case 344 : if (DEBUG) { System.out.println("RecordBody ::= LBRACE RecordBodyDeclarationopt RBRACE"); } //$NON-NLS-1$
+ case 345 : if (DEBUG) { System.out.println("RecordBody ::= LBRACE RecordBodyDeclarationopt RBRACE"); } //$NON-NLS-1$
consumeRecordBody(); break;
- case 345 : if (DEBUG) { System.out.println("RecordBodyDeclarationopt ::="); } //$NON-NLS-1$
+ case 346 : if (DEBUG) { System.out.println("RecordBodyDeclarationopt ::="); } //$NON-NLS-1$
consumeEmptyRecordBodyDeclaration(); break;
- case 348 : if (DEBUG) { System.out.println("RecordBodyDeclarations ::= RecordBodyDeclarations..."); } //$NON-NLS-1$
+ case 349 : if (DEBUG) { System.out.println("RecordBodyDeclarations ::= RecordBodyDeclarations..."); } //$NON-NLS-1$
consumeRecordBodyDeclarations(); break;
- case 349 : if (DEBUG) { System.out.println("RecordBodyDeclaration ::= ClassBodyDeclaration"); } //$NON-NLS-1$
+ case 350 : if (DEBUG) { System.out.println("RecordBodyDeclaration ::= ClassBodyDeclaration"); } //$NON-NLS-1$
consumeRecordBodyDeclaration(); break;
- case 350 : if (DEBUG) { System.out.println("RecordBodyDeclaration ::= CompactConstructorDeclaration"); } //$NON-NLS-1$
+ case 351 : if (DEBUG) { System.out.println("RecordBodyDeclaration ::= CompactConstructorDeclaration"); } //$NON-NLS-1$
consumeRecordBodyDeclaration(); break;
- case 351 : if (DEBUG) { System.out.println("CompactConstructorDeclaration ::=..."); } //$NON-NLS-1$
+ case 352 : if (DEBUG) { System.out.println("CompactConstructorDeclaration ::=..."); } //$NON-NLS-1$
consumeCompactConstructorDeclaration(); break;
- case 352 : if (DEBUG) { System.out.println("CompactConstructorHeader ::=..."); } //$NON-NLS-1$
+ case 353 : if (DEBUG) { System.out.println("CompactConstructorHeader ::=..."); } //$NON-NLS-1$
consumeCompactConstructorHeader(); break;
- case 353 : if (DEBUG) { System.out.println("CompactConstructorHeaderName ::= Modifiersopt Identifier"); } //$NON-NLS-1$
+ case 354 : if (DEBUG) { System.out.println("CompactConstructorHeaderName ::= Modifiersopt Identifier"); } //$NON-NLS-1$
consumeCompactConstructorHeaderName(); break;
- case 354 : if (DEBUG) { System.out.println("CompactConstructorHeaderName ::= Modifiersopt..."); } //$NON-NLS-1$
+ case 355 : if (DEBUG) { System.out.println("CompactConstructorHeaderName ::= Modifiersopt..."); } //$NON-NLS-1$
consumeCompactConstructorHeaderNameWithTypeParameters(); break;
- case 356 : if (DEBUG) { System.out.println("InstanceofExpression ::= InstanceofExpression..."); } //$NON-NLS-1$
+ case 357 : if (DEBUG) { System.out.println("InstanceofExpression ::= InstanceofExpression..."); } //$NON-NLS-1$
consumeInstanceOfExpression(); break;
- case 359 : if (DEBUG) { System.out.println("InstanceofClassic ::= instanceof Modifiersopt Type"); } //$NON-NLS-1$
+ case 360 : if (DEBUG) { System.out.println("InstanceofClassic ::= instanceof Modifiersopt Type"); } //$NON-NLS-1$
consumeInstanceOfClassic(); break;
- case 360 : if (DEBUG) { System.out.println("InstanceofPattern ::= instanceof Pattern"); } //$NON-NLS-1$
+ case 361 : if (DEBUG) { System.out.println("InstanceofPattern ::= instanceof Pattern"); } //$NON-NLS-1$
consumeInstanceofPattern(); break;
- case 363 : if (DEBUG) { System.out.println("TypePattern ::= Modifiersopt Type Identifier"); } //$NON-NLS-1$
+ case 364 : if (DEBUG) { System.out.println("TypePattern ::= Modifiersopt Type Identifier"); } //$NON-NLS-1$
consumeTypePattern(); break;
- case 364 : if (DEBUG) { System.out.println("TypePattern ::= Modifiersopt Type UNDERSCORE"); } //$NON-NLS-1$
+ case 365 : if (DEBUG) { System.out.println("TypePattern ::= Modifiersopt Type UNDERSCORE"); } //$NON-NLS-1$
consumeTypePattern(); break;
- case 365 : if (DEBUG) { System.out.println("RecordPattern ::= Modifiersopt ReferenceType PushLPAREN"); } //$NON-NLS-1$
+ case 366 : if (DEBUG) { System.out.println("RecordPattern ::= Modifiersopt ReferenceType PushLPAREN"); } //$NON-NLS-1$
consumeRecordPattern(); break;
- case 366 : if (DEBUG) { System.out.println("ComponentPatternListopt ::="); } //$NON-NLS-1$
+ case 367 : if (DEBUG) { System.out.println("ComponentPatternListopt ::="); } //$NON-NLS-1$
consumePatternListopt(); break;
- case 369 : if (DEBUG) { System.out.println("ComponentPatternList ::= ComponentPatternList COMMA..."); } //$NON-NLS-1$
+ case 370 : if (DEBUG) { System.out.println("ComponentPatternList ::= ComponentPatternList COMMA..."); } //$NON-NLS-1$
consumePatternList(); break;
- case 377 : if (DEBUG) { System.out.println("StringTemplateExpression ::= Name DOT TemplateArgument"); } //$NON-NLS-1$
+ case 378 : if (DEBUG) { System.out.println("StringTemplateExpression ::= Name DOT TemplateArgument"); } //$NON-NLS-1$
consumeTemplateExpressionWithName(); break;
- case 378 : if (DEBUG) { System.out.println("StringTemplateExpression ::= Primary DOT..."); } //$NON-NLS-1$
+ case 379 : if (DEBUG) { System.out.println("StringTemplateExpression ::= Primary DOT..."); } //$NON-NLS-1$
consumeTemplateExpressionWithPrimary(); break;
- case 379 : if (DEBUG) { System.out.println("UnnamedPattern ::= UNDERSCORE"); } //$NON-NLS-1$
+ case 380 : if (DEBUG) { System.out.println("UnnamedPattern ::= UNDERSCORE"); } //$NON-NLS-1$
consumeUnnamedPattern(); break;
- case 381 : if (DEBUG) { System.out.println("PushLeftBrace ::="); } //$NON-NLS-1$
+ case 382 : if (DEBUG) { System.out.println("PushLeftBrace ::="); } //$NON-NLS-1$
consumePushLeftBrace(); break;
- case 382 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace ,opt RBRACE"); } //$NON-NLS-1$
+ case 383 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace ,opt RBRACE"); } //$NON-NLS-1$
consumeEmptyArrayInitializer(); break;
- case 383 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace..."); } //$NON-NLS-1$
+ case 384 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace..."); } //$NON-NLS-1$
consumeArrayInitializer(); break;
- case 384 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace..."); } //$NON-NLS-1$
+ case 385 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace..."); } //$NON-NLS-1$
consumeArrayInitializer(); break;
- case 386 : if (DEBUG) { System.out.println("VariableInitializers ::= VariableInitializers COMMA..."); } //$NON-NLS-1$
+ case 387 : if (DEBUG) { System.out.println("VariableInitializers ::= VariableInitializers COMMA..."); } //$NON-NLS-1$
consumeVariableInitializers(); break;
- case 387 : if (DEBUG) { System.out.println("Block ::= OpenBlock LBRACE BlockStatementsopt RBRACE"); } //$NON-NLS-1$
+ case 388 : if (DEBUG) { System.out.println("Block ::= OpenBlock LBRACE BlockStatementsopt RBRACE"); } //$NON-NLS-1$
consumeBlock(); break;
- case 388 : if (DEBUG) { System.out.println("OpenBlock ::="); } //$NON-NLS-1$
+ case 389 : if (DEBUG) { System.out.println("OpenBlock ::="); } //$NON-NLS-1$
consumeOpenBlock() ; break;
- case 389 : if (DEBUG) { System.out.println("BlockStatements ::= BlockStatement"); } //$NON-NLS-1$
+ case 390 : if (DEBUG) { System.out.println("BlockStatements ::= BlockStatement"); } //$NON-NLS-1$
consumeBlockStatement() ; break;
- case 390 : if (DEBUG) { System.out.println("BlockStatements ::= BlockStatements BlockStatement"); } //$NON-NLS-1$
+ case 391 : if (DEBUG) { System.out.println("BlockStatements ::= BlockStatements BlockStatement"); } //$NON-NLS-1$
consumeBlockStatements() ; break;
- case 398 : if (DEBUG) { System.out.println("BlockStatement ::= InterfaceDeclaration"); } //$NON-NLS-1$
+ case 399 : if (DEBUG) { System.out.println("BlockStatement ::= InterfaceDeclaration"); } //$NON-NLS-1$
consumeInvalidInterfaceDeclaration(); break;
- case 399 : if (DEBUG) { System.out.println("BlockStatement ::= AnnotationTypeDeclaration"); } //$NON-NLS-1$
+ case 400 : if (DEBUG) { System.out.println("BlockStatement ::= AnnotationTypeDeclaration"); } //$NON-NLS-1$
consumeInvalidAnnotationTypeDeclaration(); break;
- case 400 : if (DEBUG) { System.out.println("BlockStatement ::= EnumDeclaration"); } //$NON-NLS-1$
+ case 401 : if (DEBUG) { System.out.println("BlockStatement ::= EnumDeclaration"); } //$NON-NLS-1$
consumeInvalidEnumDeclaration(); break;
- case 401 : if (DEBUG) { System.out.println("LocalVariableDeclarationStatement ::=..."); } //$NON-NLS-1$
+ case 402 : if (DEBUG) { System.out.println("LocalVariableDeclarationStatement ::=..."); } //$NON-NLS-1$
consumeLocalVariableDeclarationStatement(); break;
- case 402 : if (DEBUG) { System.out.println("LocalVariableDeclaration ::= Type PushModifiers..."); } //$NON-NLS-1$
+ case 403 : if (DEBUG) { System.out.println("LocalVariableDeclaration ::= Type PushModifiers..."); } //$NON-NLS-1$
consumeLocalVariableDeclaration(); break;
- case 403 : if (DEBUG) { System.out.println("LocalVariableDeclaration ::= Modifiers Type..."); } //$NON-NLS-1$
+ case 404 : if (DEBUG) { System.out.println("LocalVariableDeclaration ::= Modifiers Type..."); } //$NON-NLS-1$
consumeLocalVariableDeclaration(); break;
- case 404 : if (DEBUG) { System.out.println("PushModifiers ::="); } //$NON-NLS-1$
+ case 405 : if (DEBUG) { System.out.println("PushModifiers ::="); } //$NON-NLS-1$
consumePushModifiers(); break;
- case 405 : if (DEBUG) { System.out.println("PushModifiersForHeader ::="); } //$NON-NLS-1$
+ case 406 : if (DEBUG) { System.out.println("PushModifiersForHeader ::="); } //$NON-NLS-1$
consumePushModifiersForHeader(); break;
- case 406 : if (DEBUG) { System.out.println("PushRealModifiers ::="); } //$NON-NLS-1$
+ case 407 : if (DEBUG) { System.out.println("PushRealModifiers ::="); } //$NON-NLS-1$
consumePushRealModifiers(); break;
- case 434 : if (DEBUG) { System.out.println("EmptyStatement ::= SEMICOLON"); } //$NON-NLS-1$
+ case 435 : if (DEBUG) { System.out.println("EmptyStatement ::= SEMICOLON"); } //$NON-NLS-1$
consumeEmptyStatement(); break;
- case 435 : if (DEBUG) { System.out.println("LabeledStatement ::= Label COLON Statement"); } //$NON-NLS-1$
+ case 436 : if (DEBUG) { System.out.println("LabeledStatement ::= Label COLON Statement"); } //$NON-NLS-1$
consumeStatementLabel() ; break;
- case 436 : if (DEBUG) { System.out.println("LabeledStatementNoShortIf ::= Label COLON..."); } //$NON-NLS-1$
+ case 437 : if (DEBUG) { System.out.println("LabeledStatementNoShortIf ::= Label COLON..."); } //$NON-NLS-1$
consumeStatementLabel() ; break;
- case 437 : if (DEBUG) { System.out.println("Label ::= Identifier"); } //$NON-NLS-1$
+ case 438 : if (DEBUG) { System.out.println("Label ::= Identifier"); } //$NON-NLS-1$
consumeLabel() ; break;
- case 438 : if (DEBUG) { System.out.println("ExpressionStatement ::= StatementExpression SEMICOLON"); } //$NON-NLS-1$
+ case 439 : if (DEBUG) { System.out.println("ExpressionStatement ::= StatementExpression SEMICOLON"); } //$NON-NLS-1$
consumeExpressionStatement(); break;
- case 447 : if (DEBUG) { System.out.println("PostExpressionInSwitchStatement ::="); } //$NON-NLS-1$
+ case 448 : if (DEBUG) { System.out.println("PostExpressionInSwitchStatement ::="); } //$NON-NLS-1$
consumePostExpressionInSwitch(true); break;
- case 448 : if (DEBUG) { System.out.println("PostExpressionInSwitchExpression ::="); } //$NON-NLS-1$
+ case 449 : if (DEBUG) { System.out.println("PostExpressionInSwitchExpression ::="); } //$NON-NLS-1$
consumePostExpressionInSwitch(false); break;
- case 449 : if (DEBUG) { System.out.println("PostExpressionInIf ::="); } //$NON-NLS-1$
+ case 450 : if (DEBUG) { System.out.println("PostExpressionInIf ::="); } //$NON-NLS-1$
consumePostExpressionInIf(); break;
- case 450 : if (DEBUG) { System.out.println("PostExpressionInWhile ::="); } //$NON-NLS-1$
+ case 451 : if (DEBUG) { System.out.println("PostExpressionInWhile ::="); } //$NON-NLS-1$
consumePostExpressionInWhile(); break;
- case 451 : if (DEBUG) { System.out.println("IfThenStatement ::= if LPAREN Expression RPAREN..."); } //$NON-NLS-1$
+ case 452 : if (DEBUG) { System.out.println("IfThenStatement ::= if LPAREN Expression RPAREN..."); } //$NON-NLS-1$
consumeStatementIfNoElse(); break;
- case 452 : if (DEBUG) { System.out.println("IfThenElseStatement ::= if LPAREN Expression RPAREN..."); } //$NON-NLS-1$
+ case 453 : if (DEBUG) { System.out.println("IfThenElseStatement ::= if LPAREN Expression RPAREN..."); } //$NON-NLS-1$
consumeStatementIfWithElse(); break;
- case 453 : if (DEBUG) { System.out.println("IfThenElseStatementNoShortIf ::= if LPAREN Expression..."); } //$NON-NLS-1$
+ case 454 : if (DEBUG) { System.out.println("IfThenElseStatementNoShortIf ::= if LPAREN Expression..."); } //$NON-NLS-1$
consumeStatementIfWithElse(); break;
- case 454 : if (DEBUG) { System.out.println("SwitchStatement ::= switch LPAREN Expression RPAREN..."); } //$NON-NLS-1$
+ case 455 : if (DEBUG) { System.out.println("SwitchStatement ::= switch LPAREN Expression RPAREN..."); } //$NON-NLS-1$
consumeStatementSwitch() ; break;
- case 455 : if (DEBUG) { System.out.println("SwitchBlock ::= LBRACE RBRACE"); } //$NON-NLS-1$
+ case 456 : if (DEBUG) { System.out.println("SwitchBlock ::= LBRACE RBRACE"); } //$NON-NLS-1$
consumeEmptySwitchBlock() ; break;
- case 458 : if (DEBUG) { System.out.println("SwitchBlock ::= LBRACE SwitchBlockStatements..."); } //$NON-NLS-1$
+ case 459 : if (DEBUG) { System.out.println("SwitchBlock ::= LBRACE SwitchBlockStatements..."); } //$NON-NLS-1$
consumeSwitchBlock() ; break;
- case 460 : if (DEBUG) { System.out.println("SwitchBlockStatements ::= SwitchBlockStatements..."); } //$NON-NLS-1$
+ case 461 : if (DEBUG) { System.out.println("SwitchBlockStatements ::= SwitchBlockStatements..."); } //$NON-NLS-1$
consumeSwitchBlockStatements() ; break;
- case 462 : if (DEBUG) { System.out.println("SwitchBlockStatement ::= SwitchLabels BlockStatements"); } //$NON-NLS-1$
+ case 463 : if (DEBUG) { System.out.println("SwitchBlockStatement ::= SwitchLabels BlockStatements"); } //$NON-NLS-1$
consumeSwitchBlockStatement() ; break;
- case 464 : if (DEBUG) { System.out.println("SwitchLabels ::= SwitchLabels SwitchLabel"); } //$NON-NLS-1$
+ case 465 : if (DEBUG) { System.out.println("SwitchLabels ::= SwitchLabels SwitchLabel"); } //$NON-NLS-1$
consumeSwitchLabels() ; break;
- case 465 : if (DEBUG) { System.out.println("SwitchLabel ::= SwitchLabelCaseLhs COLON"); } //$NON-NLS-1$
+ case 466 : if (DEBUG) { System.out.println("SwitchLabel ::= SwitchLabelCaseLhs COLON"); } //$NON-NLS-1$
consumeCaseLabel(); break;
- case 466 : if (DEBUG) { System.out.println("SwitchLabel ::= default COLON"); } //$NON-NLS-1$
+ case 467 : if (DEBUG) { System.out.println("SwitchLabel ::= default COLON"); } //$NON-NLS-1$
consumeDefaultLabel(); break;
- case 469 : if (DEBUG) { System.out.println("SwitchExpression ::= switch LPAREN Expression RPAREN..."); } //$NON-NLS-1$
+ case 470 : if (DEBUG) { System.out.println("SwitchExpression ::= switch LPAREN Expression RPAREN..."); } //$NON-NLS-1$
consumeSwitchExpression() ; break;
- case 472 : if (DEBUG) { System.out.println("SwitchLabeledRule ::= SwitchLabeledThrowStatement"); } //$NON-NLS-1$
+ case 473 : if (DEBUG) { System.out.println("SwitchLabeledRule ::= SwitchLabeledThrowStatement"); } //$NON-NLS-1$
consumeSwitchLabeledRule(); break;
- case 473 : if (DEBUG) { System.out.println("SwitchLabeledExpression ::= SwitchLabelExpr Expression"); } //$NON-NLS-1$
+ case 474 : if (DEBUG) { System.out.println("SwitchLabeledExpression ::= SwitchLabelExpr Expression"); } //$NON-NLS-1$
consumeSwitchLabeledExpression(); break;
- case 474 : if (DEBUG) { System.out.println("SwitchLabeledBlock ::= SwitchLabelExpr Block"); } //$NON-NLS-1$
+ case 475 : if (DEBUG) { System.out.println("SwitchLabeledBlock ::= SwitchLabelExpr Block"); } //$NON-NLS-1$
consumeSwitchLabeledBlock(); break;
- case 475 : if (DEBUG) { System.out.println("SwitchLabeledThrowStatement ::= SwitchLabelExpr..."); } //$NON-NLS-1$
+ case 476 : if (DEBUG) { System.out.println("SwitchLabeledThrowStatement ::= SwitchLabelExpr..."); } //$NON-NLS-1$
consumeSwitchLabeledThrowStatement(); break;
- case 476 : if (DEBUG) { System.out.println("SwitchLabelExpr ::= default ARROW"); } //$NON-NLS-1$
+ case 477 : if (DEBUG) { System.out.println("SwitchLabelExpr ::= default ARROW"); } //$NON-NLS-1$
consumeDefaultLabelExpr(); break;
- case 477 : if (DEBUG) { System.out.println("SwitchLabelExpr ::= SwitchLabelCaseLhs BeginCaseExpr..."); } //$NON-NLS-1$
+ case 478 : if (DEBUG) { System.out.println("SwitchLabelExpr ::= SwitchLabelCaseLhs BeginCaseExpr..."); } //$NON-NLS-1$
consumeCaseLabelExpr(); break;
- case 478 : if (DEBUG) { System.out.println("SwitchLabelCaseLhs ::= case CaseLabelElements"); } //$NON-NLS-1$
+ case 479 : if (DEBUG) { System.out.println("SwitchLabelCaseLhs ::= case CaseLabelElements"); } //$NON-NLS-1$
consumeSwitchLabelCaseLhs(); break;
- case 480 : if (DEBUG) { System.out.println("CaseLabelElements ::= CaseLabelElements COMMA..."); } //$NON-NLS-1$
+ case 481 : if (DEBUG) { System.out.println("CaseLabelElements ::= CaseLabelElements COMMA..."); } //$NON-NLS-1$
consumeCaseLabelElements(); break;
- case 481 : if (DEBUG) { System.out.println("CaseLabelElement ::= ConstantExpression"); } //$NON-NLS-1$
+ case 482 : if (DEBUG) { System.out.println("CaseLabelElement ::= ConstantExpression"); } //$NON-NLS-1$
consumeCaseLabelElement(CaseLabelKind.CASE_EXPRESSION); break;
- case 482 : if (DEBUG) { System.out.println("CaseLabelElement ::= default"); } //$NON-NLS-1$
+ case 483 : if (DEBUG) { System.out.println("CaseLabelElement ::= default"); } //$NON-NLS-1$
consumeCaseLabelElement(CaseLabelKind.CASE_DEFAULT); break;
- case 483 : if (DEBUG) { System.out.println("CaseLabelElement ::= CaseLabelElementPattern"); } //$NON-NLS-1$
+ case 484 : if (DEBUG) { System.out.println("CaseLabelElement ::= CaseLabelElementPattern"); } //$NON-NLS-1$
consumeCaseLabelElement(CaseLabelKind.CASE_PATTERN); break;
- case 484 : if (DEBUG) { System.out.println("CaseLabelElement ::= CaseLabelElementPattern Guard"); } //$NON-NLS-1$
+ case 485 : if (DEBUG) { System.out.println("CaseLabelElement ::= CaseLabelElementPattern Guard"); } //$NON-NLS-1$
consumeCaseLabelElement(CaseLabelKind.CASE_PATTERN); break;
- case 486 : if (DEBUG) { System.out.println("Guard ::= RestrictedIdentifierWhen Expression"); } //$NON-NLS-1$
+ case 487 : if (DEBUG) { System.out.println("Guard ::= RestrictedIdentifierWhen Expression"); } //$NON-NLS-1$
consumeGuard(); break;
- case 487 : if (DEBUG) { System.out.println("YieldStatement ::= RestrictedIdentifierYield Expression"); } //$NON-NLS-1$
+ case 488 : if (DEBUG) { System.out.println("YieldStatement ::= RestrictedIdentifierYield Expression"); } //$NON-NLS-1$
consumeStatementYield() ; break;
- case 488 : if (DEBUG) { System.out.println("WhileStatement ::= while LPAREN Expression RPAREN..."); } //$NON-NLS-1$
+ case 489 : if (DEBUG) { System.out.println("WhileStatement ::= while LPAREN Expression RPAREN..."); } //$NON-NLS-1$
consumeStatementWhile() ; break;
- case 489 : if (DEBUG) { System.out.println("WhileStatementNoShortIf ::= while LPAREN Expression..."); } //$NON-NLS-1$
+ case 490 : if (DEBUG) { System.out.println("WhileStatementNoShortIf ::= while LPAREN Expression..."); } //$NON-NLS-1$
consumeStatementWhile() ; break;
- case 490 : if (DEBUG) { System.out.println("DoStatement ::= do Statement while LPAREN Expression..."); } //$NON-NLS-1$
+ case 491 : if (DEBUG) { System.out.println("DoStatement ::= do Statement while LPAREN Expression..."); } //$NON-NLS-1$
consumeStatementDo() ; break;
- case 491 : if (DEBUG) { System.out.println("ForStatement ::= for LPAREN ForInitopt SEMICOLON..."); } //$NON-NLS-1$
+ case 492 : if (DEBUG) { System.out.println("ForStatement ::= for LPAREN ForInitopt SEMICOLON..."); } //$NON-NLS-1$
consumeStatementFor() ; break;
- case 492 : if (DEBUG) { System.out.println("ForStatementNoShortIf ::= for LPAREN ForInitopt..."); } //$NON-NLS-1$
+ case 493 : if (DEBUG) { System.out.println("ForStatementNoShortIf ::= for LPAREN ForInitopt..."); } //$NON-NLS-1$
consumeStatementFor() ; break;
- case 493 : if (DEBUG) { System.out.println("ForInit ::= StatementExpressionList"); } //$NON-NLS-1$
+ case 494 : if (DEBUG) { System.out.println("ForInit ::= StatementExpressionList"); } //$NON-NLS-1$
consumeForInit() ; break;
- case 497 : if (DEBUG) { System.out.println("StatementExpressionList ::= StatementExpressionList..."); } //$NON-NLS-1$
+ case 498 : if (DEBUG) { System.out.println("StatementExpressionList ::= StatementExpressionList..."); } //$NON-NLS-1$
consumeStatementExpressionList() ; break;
- case 498 : if (DEBUG) { System.out.println("AssertStatement ::= assert Expression SEMICOLON"); } //$NON-NLS-1$
+ case 499 : if (DEBUG) { System.out.println("AssertStatement ::= assert Expression SEMICOLON"); } //$NON-NLS-1$
consumeSimpleAssertStatement() ; break;
- case 499 : if (DEBUG) { System.out.println("AssertStatement ::= assert Expression COLON Expression"); } //$NON-NLS-1$
+ case 500 : if (DEBUG) { System.out.println("AssertStatement ::= assert Expression COLON Expression"); } //$NON-NLS-1$
consumeAssertStatement() ; break;
- case 500 : if (DEBUG) { System.out.println("BreakStatement ::= break SEMICOLON"); } //$NON-NLS-1$
+ case 501 : if (DEBUG) { System.out.println("BreakStatement ::= break SEMICOLON"); } //$NON-NLS-1$
consumeStatementBreak() ; break;
- case 501 : if (DEBUG) { System.out.println("BreakStatement ::= break Identifier SEMICOLON"); } //$NON-NLS-1$
+ case 502 : if (DEBUG) { System.out.println("BreakStatement ::= break Identifier SEMICOLON"); } //$NON-NLS-1$
consumeStatementBreakWithLabel() ; break;
- case 502 : if (DEBUG) { System.out.println("ContinueStatement ::= continue SEMICOLON"); } //$NON-NLS-1$
+ case 503 : if (DEBUG) { System.out.println("ContinueStatement ::= continue SEMICOLON"); } //$NON-NLS-1$
consumeStatementContinue() ; break;
- case 503 : if (DEBUG) { System.out.println("ContinueStatement ::= continue Identifier SEMICOLON"); } //$NON-NLS-1$
+ case 504 : if (DEBUG) { System.out.println("ContinueStatement ::= continue Identifier SEMICOLON"); } //$NON-NLS-1$
consumeStatementContinueWithLabel() ; break;
- case 504 : if (DEBUG) { System.out.println("ReturnStatement ::= return Expressionopt SEMICOLON"); } //$NON-NLS-1$
+ case 505 : if (DEBUG) { System.out.println("ReturnStatement ::= return Expressionopt SEMICOLON"); } //$NON-NLS-1$
consumeStatementReturn() ; break;
- case 505 : if (DEBUG) { System.out.println("ThrowStatement ::= throw Expression SEMICOLON"); } //$NON-NLS-1$
+ case 506 : if (DEBUG) { System.out.println("ThrowStatement ::= throw Expression SEMICOLON"); } //$NON-NLS-1$
consumeStatementThrow(); break;
- case 506 : if (DEBUG) { System.out.println("ThrowExpression ::= throw Expression"); } //$NON-NLS-1$
+ case 507 : if (DEBUG) { System.out.println("ThrowExpression ::= throw Expression"); } //$NON-NLS-1$
consumeThrowExpression() ; break;
- case 507 : if (DEBUG) { System.out.println("SynchronizedStatement ::= OnlySynchronized LPAREN..."); } //$NON-NLS-1$
+ case 508 : if (DEBUG) { System.out.println("SynchronizedStatement ::= OnlySynchronized LPAREN..."); } //$NON-NLS-1$
consumeStatementSynchronized(); break;
- case 508 : if (DEBUG) { System.out.println("OnlySynchronized ::= synchronized"); } //$NON-NLS-1$
+ case 509 : if (DEBUG) { System.out.println("OnlySynchronized ::= synchronized"); } //$NON-NLS-1$
consumeOnlySynchronized(); break;
- case 509 : if (DEBUG) { System.out.println("TryStatement ::= try TryBlock Catches"); } //$NON-NLS-1$
+ case 510 : if (DEBUG) { System.out.println("TryStatement ::= try TryBlock Catches"); } //$NON-NLS-1$
consumeStatementTry(false, false); break;
- case 510 : if (DEBUG) { System.out.println("TryStatement ::= try TryBlock Catchesopt Finally"); } //$NON-NLS-1$
+ case 511 : if (DEBUG) { System.out.println("TryStatement ::= try TryBlock Catchesopt Finally"); } //$NON-NLS-1$
consumeStatementTry(true, false); break;
- case 511 : if (DEBUG) { System.out.println("TryStatementWithResources ::= try ResourceSpecification"); } //$NON-NLS-1$
+ case 512 : if (DEBUG) { System.out.println("TryStatementWithResources ::= try ResourceSpecification"); } //$NON-NLS-1$
consumeStatementTry(false, true); break;
- case 512 : if (DEBUG) { System.out.println("TryStatementWithResources ::= try ResourceSpecification"); } //$NON-NLS-1$
+ case 513 : if (DEBUG) { System.out.println("TryStatementWithResources ::= try ResourceSpecification"); } //$NON-NLS-1$
consumeStatementTry(true, true); break;
- case 513 : if (DEBUG) { System.out.println("ResourceSpecification ::= LPAREN Resources ;opt RPAREN"); } //$NON-NLS-1$
+ case 514 : if (DEBUG) { System.out.println("ResourceSpecification ::= LPAREN Resources ;opt RPAREN"); } //$NON-NLS-1$
consumeResourceSpecification(); break;
- case 514 : if (DEBUG) { System.out.println(";opt ::="); } //$NON-NLS-1$
+ case 515 : if (DEBUG) { System.out.println(";opt ::="); } //$NON-NLS-1$
consumeResourceOptionalTrailingSemiColon(false); break;
- case 515 : if (DEBUG) { System.out.println(";opt ::= SEMICOLON"); } //$NON-NLS-1$
+ case 516 : if (DEBUG) { System.out.println(";opt ::= SEMICOLON"); } //$NON-NLS-1$
consumeResourceOptionalTrailingSemiColon(true); break;
- case 516 : if (DEBUG) { System.out.println("Resources ::= Resource"); } //$NON-NLS-1$
+ case 517 : if (DEBUG) { System.out.println("Resources ::= Resource"); } //$NON-NLS-1$
consumeSingleResource(); break;
- case 517 : if (DEBUG) { System.out.println("Resources ::= Resources TrailingSemiColon Resource"); } //$NON-NLS-1$
+ case 518 : if (DEBUG) { System.out.println("Resources ::= Resources TrailingSemiColon Resource"); } //$NON-NLS-1$
consumeMultipleResources(); break;
- case 518 : if (DEBUG) { System.out.println("TrailingSemiColon ::= SEMICOLON"); } //$NON-NLS-1$
+ case 519 : if (DEBUG) { System.out.println("TrailingSemiColon ::= SEMICOLON"); } //$NON-NLS-1$
consumeResourceOptionalTrailingSemiColon(true); break;
- case 519 : if (DEBUG) { System.out.println("Resource ::= Type PushModifiers VariableDeclaratorId..."); } //$NON-NLS-1$
+ case 520 : if (DEBUG) { System.out.println("Resource ::= Type PushModifiers VariableDeclaratorId..."); } //$NON-NLS-1$
consumeResourceAsLocalVariableDeclaration(); break;
- case 520 : if (DEBUG) { System.out.println("Resource ::= Modifiers Type PushRealModifiers..."); } //$NON-NLS-1$
+ case 521 : if (DEBUG) { System.out.println("Resource ::= Modifiers Type PushRealModifiers..."); } //$NON-NLS-1$
consumeResourceAsLocalVariableDeclaration(); break;
- case 521 : if (DEBUG) { System.out.println("Resource ::= Name"); } //$NON-NLS-1$
+ case 522 : if (DEBUG) { System.out.println("Resource ::= Name"); } //$NON-NLS-1$
consumeResourceAsLocalVariable(); break;
- case 522 : if (DEBUG) { System.out.println("Resource ::= this"); } //$NON-NLS-1$
+ case 523 : if (DEBUG) { System.out.println("Resource ::= this"); } //$NON-NLS-1$
consumeResourceAsThis(); break;
- case 523 : if (DEBUG) { System.out.println("Resource ::= FieldAccess"); } //$NON-NLS-1$
+ case 524 : if (DEBUG) { System.out.println("Resource ::= FieldAccess"); } //$NON-NLS-1$
consumeResourceAsFieldAccess(); break;
- case 525 : if (DEBUG) { System.out.println("ExitTryBlock ::="); } //$NON-NLS-1$
+ case 526 : if (DEBUG) { System.out.println("ExitTryBlock ::="); } //$NON-NLS-1$
consumeExitTryBlock(); break;
- case 527 : if (DEBUG) { System.out.println("Catches ::= Catches CatchClause"); } //$NON-NLS-1$
+ case 528 : if (DEBUG) { System.out.println("Catches ::= Catches CatchClause"); } //$NON-NLS-1$
consumeCatches(); break;
- case 528 : if (DEBUG) { System.out.println("CatchClause ::= catch LPAREN CatchFormalParameter RPAREN"); } //$NON-NLS-1$
+ case 529 : if (DEBUG) { System.out.println("CatchClause ::= catch LPAREN CatchFormalParameter RPAREN"); } //$NON-NLS-1$
consumeStatementCatch() ; break;
- case 530 : if (DEBUG) { System.out.println("PushLPAREN ::= LPAREN"); } //$NON-NLS-1$
+ case 531 : if (DEBUG) { System.out.println("PushLPAREN ::= LPAREN"); } //$NON-NLS-1$
consumeLeftParen(); break;
- case 531 : if (DEBUG) { System.out.println("PushRPAREN ::= RPAREN"); } //$NON-NLS-1$
+ case 532 : if (DEBUG) { System.out.println("PushRPAREN ::= RPAREN"); } //$NON-NLS-1$
consumeRightParen(); break;
- case 536 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= this"); } //$NON-NLS-1$
+ case 537 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= this"); } //$NON-NLS-1$
consumePrimaryNoNewArrayThis(); break;
- case 537 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PushLPAREN Expression_NotName..."); } //$NON-NLS-1$
+ case 538 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PushLPAREN Expression_NotName..."); } //$NON-NLS-1$
consumePrimaryNoNewArray(); break;
- case 538 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PushLPAREN Name PushRPAREN"); } //$NON-NLS-1$
+ case 539 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PushLPAREN Name PushRPAREN"); } //$NON-NLS-1$
consumePrimaryNoNewArrayWithName(); break;
- case 541 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT this"); } //$NON-NLS-1$
+ case 542 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT this"); } //$NON-NLS-1$
consumePrimaryNoNewArrayNameThis(); break;
- case 542 : if (DEBUG) { System.out.println("QualifiedSuperReceiver ::= Name DOT super"); } //$NON-NLS-1$
+ case 543 : if (DEBUG) { System.out.println("QualifiedSuperReceiver ::= Name DOT super"); } //$NON-NLS-1$
consumeQualifiedSuperReceiver(); break;
- case 543 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT class"); } //$NON-NLS-1$
+ case 544 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT class"); } //$NON-NLS-1$
consumePrimaryNoNewArrayName(); break;
- case 544 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name Dims DOT class"); } //$NON-NLS-1$
+ case 545 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name Dims DOT class"); } //$NON-NLS-1$
consumePrimaryNoNewArrayArrayType(); break;
- case 545 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PrimitiveType Dims DOT class"); } //$NON-NLS-1$
+ case 546 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PrimitiveType Dims DOT class"); } //$NON-NLS-1$
consumePrimaryNoNewArrayPrimitiveArrayType(); break;
- case 546 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PrimitiveType DOT class"); } //$NON-NLS-1$
+ case 547 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PrimitiveType DOT class"); } //$NON-NLS-1$
consumePrimaryNoNewArrayPrimitiveType(); break;
- case 552 : if (DEBUG) { System.out.println("ReferenceExpressionTypeArgumentsAndTrunk0 ::=..."); } //$NON-NLS-1$
+ case 553 : if (DEBUG) { System.out.println("ReferenceExpressionTypeArgumentsAndTrunk0 ::=..."); } //$NON-NLS-1$
consumeReferenceExpressionTypeArgumentsAndTrunk(false); break;
- case 553 : if (DEBUG) { System.out.println("ReferenceExpressionTypeArgumentsAndTrunk0 ::=..."); } //$NON-NLS-1$
+ case 554 : if (DEBUG) { System.out.println("ReferenceExpressionTypeArgumentsAndTrunk0 ::=..."); } //$NON-NLS-1$
consumeReferenceExpressionTypeArgumentsAndTrunk(true); break;
- case 554 : if (DEBUG) { System.out.println("ReferenceExpression ::= PrimitiveType Dims COLON_COLON"); } //$NON-NLS-1$
+ case 555 : if (DEBUG) { System.out.println("ReferenceExpression ::= PrimitiveType Dims COLON_COLON"); } //$NON-NLS-1$
consumeReferenceExpressionTypeForm(true); break;
- case 555 : if (DEBUG) { System.out.println("ReferenceExpression ::= Name Dimsopt COLON_COLON..."); } //$NON-NLS-1$
+ case 556 : if (DEBUG) { System.out.println("ReferenceExpression ::= Name Dimsopt COLON_COLON..."); } //$NON-NLS-1$
consumeReferenceExpressionTypeForm(false); break;
- case 556 : if (DEBUG) { System.out.println("ReferenceExpression ::= Name BeginTypeArguments..."); } //$NON-NLS-1$
+ case 557 : if (DEBUG) { System.out.println("ReferenceExpression ::= Name BeginTypeArguments..."); } //$NON-NLS-1$
consumeReferenceExpressionGenericTypeForm(); break;
- case 557 : if (DEBUG) { System.out.println("ReferenceExpression ::= Primary COLON_COLON..."); } //$NON-NLS-1$
+ case 558 : if (DEBUG) { System.out.println("ReferenceExpression ::= Primary COLON_COLON..."); } //$NON-NLS-1$
consumeReferenceExpressionPrimaryForm(); break;
- case 558 : if (DEBUG) { System.out.println("ReferenceExpression ::= QualifiedSuperReceiver..."); } //$NON-NLS-1$
+ case 559 : if (DEBUG) { System.out.println("ReferenceExpression ::= QualifiedSuperReceiver..."); } //$NON-NLS-1$
consumeReferenceExpressionPrimaryForm(); break;
- case 559 : if (DEBUG) { System.out.println("ReferenceExpression ::= super COLON_COLON..."); } //$NON-NLS-1$
+ case 560 : if (DEBUG) { System.out.println("ReferenceExpression ::= super COLON_COLON..."); } //$NON-NLS-1$
consumeReferenceExpressionSuperForm(); break;
- case 560 : if (DEBUG) { System.out.println("NonWildTypeArgumentsopt ::="); } //$NON-NLS-1$
+ case 561 : if (DEBUG) { System.out.println("NonWildTypeArgumentsopt ::="); } //$NON-NLS-1$
consumeEmptyTypeArguments(); break;
- case 562 : if (DEBUG) { System.out.println("IdentifierOrNew ::= Identifier"); } //$NON-NLS-1$
+ case 563 : if (DEBUG) { System.out.println("IdentifierOrNew ::= Identifier"); } //$NON-NLS-1$
consumeIdentifierOrNew(false); break;
- case 563 : if (DEBUG) { System.out.println("IdentifierOrNew ::= new"); } //$NON-NLS-1$
+ case 564 : if (DEBUG) { System.out.println("IdentifierOrNew ::= new"); } //$NON-NLS-1$
consumeIdentifierOrNew(true); break;
- case 564 : if (DEBUG) { System.out.println("LambdaExpression ::= LambdaParameters ARROW LambdaBody"); } //$NON-NLS-1$
+ case 565 : if (DEBUG) { System.out.println("LambdaExpression ::= LambdaParameters ARROW LambdaBody"); } //$NON-NLS-1$
consumeLambdaExpression(); break;
- case 565 : if (DEBUG) { System.out.println("NestedLambda ::="); } //$NON-NLS-1$
+ case 566 : if (DEBUG) { System.out.println("NestedLambda ::="); } //$NON-NLS-1$
consumeNestedLambda(); break;
- case 566 : if (DEBUG) { System.out.println("LambdaParameters ::= UNDERSCORE NestedLambda"); } //$NON-NLS-1$
+ case 567 : if (DEBUG) { System.out.println("LambdaParameters ::= UNDERSCORE NestedLambda"); } //$NON-NLS-1$
consumeTypeElidedLambdaParameter(false); break;
- case 567 : if (DEBUG) { System.out.println("LambdaParameters ::= Identifier NestedLambda"); } //$NON-NLS-1$
+ case 568 : if (DEBUG) { System.out.println("LambdaParameters ::= Identifier NestedLambda"); } //$NON-NLS-1$
consumeTypeElidedLambdaParameter(false); break;
- case 573 : if (DEBUG) { System.out.println("TypeElidedFormalParameterList ::=..."); } //$NON-NLS-1$
+ case 574 : if (DEBUG) { System.out.println("TypeElidedFormalParameterList ::=..."); } //$NON-NLS-1$
consumeFormalParameterList(); break;
- case 574 : if (DEBUG) { System.out.println("TypeElidedFormalParameter ::= Modifiersopt Identifier"); } //$NON-NLS-1$
+ case 575 : if (DEBUG) { System.out.println("TypeElidedFormalParameter ::= Modifiersopt Identifier"); } //$NON-NLS-1$
consumeTypeElidedLambdaParameter(true); break;
- case 575 : if (DEBUG) { System.out.println("TypeElidedFormalParameter ::= UNDERSCORE"); } //$NON-NLS-1$
+ case 576 : if (DEBUG) { System.out.println("TypeElidedFormalParameter ::= UNDERSCORE"); } //$NON-NLS-1$
consumeBracketedTypeElidedUnderscoreLambdaParameter(); break;
- case 578 : if (DEBUG) { System.out.println("ElidedLeftBraceAndReturn ::="); } //$NON-NLS-1$
+ case 579 : if (DEBUG) { System.out.println("ElidedLeftBraceAndReturn ::="); } //$NON-NLS-1$
consumeElidedLeftBraceAndReturn(); break;
- case 579 : if (DEBUG) { System.out.println("AllocationHeader ::= new ClassType LPAREN..."); } //$NON-NLS-1$
+ case 580 : if (DEBUG) { System.out.println("AllocationHeader ::= new ClassType LPAREN..."); } //$NON-NLS-1$
consumeAllocationHeader(); break;
- case 580 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= new..."); } //$NON-NLS-1$
+ case 581 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= new..."); } //$NON-NLS-1$
consumeClassInstanceCreationExpressionWithTypeArguments(); break;
- case 581 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= new ClassType..."); } //$NON-NLS-1$
+ case 582 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= new ClassType..."); } //$NON-NLS-1$
consumeClassInstanceCreationExpression(); break;
- case 582 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= Primary DOT new..."); } //$NON-NLS-1$
+ case 583 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= Primary DOT new..."); } //$NON-NLS-1$
consumeClassInstanceCreationExpressionQualifiedWithTypeArguments() ; break;
- case 583 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= Primary DOT new..."); } //$NON-NLS-1$
+ case 584 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= Primary DOT new..."); } //$NON-NLS-1$
consumeClassInstanceCreationExpressionQualified() ; break;
- case 584 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::=..."); } //$NON-NLS-1$
+ case 585 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::=..."); } //$NON-NLS-1$
consumeClassInstanceCreationExpressionQualified() ; break;
- case 585 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::=..."); } //$NON-NLS-1$
+ case 586 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::=..."); } //$NON-NLS-1$
consumeClassInstanceCreationExpressionQualifiedWithTypeArguments() ; break;
- case 586 : if (DEBUG) { System.out.println("EnterInstanceCreationArgumentList ::="); } //$NON-NLS-1$
+ case 587 : if (DEBUG) { System.out.println("EnterInstanceCreationArgumentList ::="); } //$NON-NLS-1$
consumeEnterInstanceCreationArgumentList(); break;
- case 587 : if (DEBUG) { System.out.println("ClassInstanceCreationExpressionName ::= Name DOT new"); } //$NON-NLS-1$
+ case 588 : if (DEBUG) { System.out.println("ClassInstanceCreationExpressionName ::= Name DOT new"); } //$NON-NLS-1$
consumeClassInstanceCreationExpressionName() ; break;
- case 588 : if (DEBUG) { System.out.println("UnqualifiedClassBodyopt ::="); } //$NON-NLS-1$
+ case 589 : if (DEBUG) { System.out.println("UnqualifiedClassBodyopt ::="); } //$NON-NLS-1$
consumeClassBodyopt(); break;
- case 590 : if (DEBUG) { System.out.println("UnqualifiedEnterAnonymousClassBody ::="); } //$NON-NLS-1$
+ case 591 : if (DEBUG) { System.out.println("UnqualifiedEnterAnonymousClassBody ::="); } //$NON-NLS-1$
consumeEnterAnonymousClassBody(false); break;
- case 591 : if (DEBUG) { System.out.println("QualifiedClassBodyopt ::="); } //$NON-NLS-1$
+ case 592 : if (DEBUG) { System.out.println("QualifiedClassBodyopt ::="); } //$NON-NLS-1$
consumeClassBodyopt(); break;
- case 593 : if (DEBUG) { System.out.println("QualifiedEnterAnonymousClassBody ::="); } //$NON-NLS-1$
+ case 594 : if (DEBUG) { System.out.println("QualifiedEnterAnonymousClassBody ::="); } //$NON-NLS-1$
consumeEnterAnonymousClassBody(true); break;
- case 595 : if (DEBUG) { System.out.println("ArgumentList ::= ArgumentList COMMA Expression"); } //$NON-NLS-1$
+ case 596 : if (DEBUG) { System.out.println("ArgumentList ::= ArgumentList COMMA Expression"); } //$NON-NLS-1$
consumeArgumentList(); break;
- case 596 : if (DEBUG) { System.out.println("ArrayCreationHeader ::= new PrimitiveType..."); } //$NON-NLS-1$
+ case 597 : if (DEBUG) { System.out.println("ArrayCreationHeader ::= new PrimitiveType..."); } //$NON-NLS-1$
consumeArrayCreationHeader(); break;
- case 597 : if (DEBUG) { System.out.println("ArrayCreationHeader ::= new ClassOrInterfaceType..."); } //$NON-NLS-1$
+ case 598 : if (DEBUG) { System.out.println("ArrayCreationHeader ::= new ClassOrInterfaceType..."); } //$NON-NLS-1$
consumeArrayCreationHeader(); break;
- case 598 : if (DEBUG) { System.out.println("ArrayCreationWithoutArrayInitializer ::= new..."); } //$NON-NLS-1$
+ case 599 : if (DEBUG) { System.out.println("ArrayCreationWithoutArrayInitializer ::= new..."); } //$NON-NLS-1$
consumeArrayCreationExpressionWithoutInitializer(); break;
- case 599 : if (DEBUG) { System.out.println("ArrayCreationWithArrayInitializer ::= new PrimitiveType"); } //$NON-NLS-1$
+ case 600 : if (DEBUG) { System.out.println("ArrayCreationWithArrayInitializer ::= new PrimitiveType"); } //$NON-NLS-1$
consumeArrayCreationExpressionWithInitializer(); break;
- case 600 : if (DEBUG) { System.out.println("ArrayCreationWithoutArrayInitializer ::= new..."); } //$NON-NLS-1$
+ case 601 : if (DEBUG) { System.out.println("ArrayCreationWithoutArrayInitializer ::= new..."); } //$NON-NLS-1$
consumeArrayCreationExpressionWithoutInitializer(); break;
- case 601 : if (DEBUG) { System.out.println("ArrayCreationWithArrayInitializer ::= new..."); } //$NON-NLS-1$
+ case 602 : if (DEBUG) { System.out.println("ArrayCreationWithArrayInitializer ::= new..."); } //$NON-NLS-1$
consumeArrayCreationExpressionWithInitializer(); break;
- case 603 : if (DEBUG) { System.out.println("DimWithOrWithOutExprs ::= DimWithOrWithOutExprs..."); } //$NON-NLS-1$
+ case 604 : if (DEBUG) { System.out.println("DimWithOrWithOutExprs ::= DimWithOrWithOutExprs..."); } //$NON-NLS-1$
consumeDimWithOrWithOutExprs(); break;
- case 605 : if (DEBUG) { System.out.println("DimWithOrWithOutExpr ::= TypeAnnotationsopt LBRACKET..."); } //$NON-NLS-1$
+ case 606 : if (DEBUG) { System.out.println("DimWithOrWithOutExpr ::= TypeAnnotationsopt LBRACKET..."); } //$NON-NLS-1$
consumeDimWithOrWithOutExpr(); break;
- case 606 : if (DEBUG) { System.out.println("Dims ::= DimsLoop"); } //$NON-NLS-1$
+ case 607 : if (DEBUG) { System.out.println("Dims ::= DimsLoop"); } //$NON-NLS-1$
consumeDims(); break;
- case 609 : if (DEBUG) { System.out.println("OneDimLoop ::= LBRACKET RBRACKET"); } //$NON-NLS-1$
+ case 610 : if (DEBUG) { System.out.println("OneDimLoop ::= LBRACKET RBRACKET"); } //$NON-NLS-1$
consumeOneDimLoop(false); break;
- case 610 : if (DEBUG) { System.out.println("OneDimLoop ::= TypeAnnotations LBRACKET RBRACKET"); } //$NON-NLS-1$
+ case 611 : if (DEBUG) { System.out.println("OneDimLoop ::= TypeAnnotations LBRACKET RBRACKET"); } //$NON-NLS-1$
consumeOneDimLoop(true); break;
- case 611 : if (DEBUG) { System.out.println("FieldAccess ::= Primary DOT Identifier"); } //$NON-NLS-1$
+ case 612 : if (DEBUG) { System.out.println("FieldAccess ::= Primary DOT Identifier"); } //$NON-NLS-1$
consumeFieldAccess(false); break;
- case 612 : if (DEBUG) { System.out.println("FieldAccess ::= super DOT Identifier"); } //$NON-NLS-1$
+ case 613 : if (DEBUG) { System.out.println("FieldAccess ::= super DOT Identifier"); } //$NON-NLS-1$
consumeFieldAccess(true); break;
- case 613 : if (DEBUG) { System.out.println("FieldAccess ::= QualifiedSuperReceiver DOT Identifier"); } //$NON-NLS-1$
+ case 614 : if (DEBUG) { System.out.println("FieldAccess ::= QualifiedSuperReceiver DOT Identifier"); } //$NON-NLS-1$
consumeFieldAccess(false); break;
- case 614 : if (DEBUG) { System.out.println("MethodInvocation ::= Name LPAREN ArgumentListopt RPAREN"); } //$NON-NLS-1$
+ case 615 : if (DEBUG) { System.out.println("MethodInvocation ::= Name LPAREN ArgumentListopt RPAREN"); } //$NON-NLS-1$
consumeMethodInvocationName(); break;
- case 615 : if (DEBUG) { System.out.println("MethodInvocation ::= Name DOT OnlyTypeArguments..."); } //$NON-NLS-1$
+ case 616 : if (DEBUG) { System.out.println("MethodInvocation ::= Name DOT OnlyTypeArguments..."); } //$NON-NLS-1$
consumeMethodInvocationNameWithTypeArguments(); break;
- case 616 : if (DEBUG) { System.out.println("MethodInvocation ::= Primary DOT OnlyTypeArguments..."); } //$NON-NLS-1$
+ case 617 : if (DEBUG) { System.out.println("MethodInvocation ::= Primary DOT OnlyTypeArguments..."); } //$NON-NLS-1$
consumeMethodInvocationPrimaryWithTypeArguments(); break;
- case 617 : if (DEBUG) { System.out.println("MethodInvocation ::= Primary DOT Identifier LPAREN..."); } //$NON-NLS-1$
+ case 618 : if (DEBUG) { System.out.println("MethodInvocation ::= Primary DOT Identifier LPAREN..."); } //$NON-NLS-1$
consumeMethodInvocationPrimary(); break;
- case 618 : if (DEBUG) { System.out.println("MethodInvocation ::= QualifiedSuperReceiver DOT..."); } //$NON-NLS-1$
+ case 619 : if (DEBUG) { System.out.println("MethodInvocation ::= QualifiedSuperReceiver DOT..."); } //$NON-NLS-1$
consumeMethodInvocationPrimary(); break;
- case 619 : if (DEBUG) { System.out.println("MethodInvocation ::= QualifiedSuperReceiver DOT..."); } //$NON-NLS-1$
+ case 620 : if (DEBUG) { System.out.println("MethodInvocation ::= QualifiedSuperReceiver DOT..."); } //$NON-NLS-1$
consumeMethodInvocationPrimaryWithTypeArguments(); break;
- case 620 : if (DEBUG) { System.out.println("MethodInvocation ::= super DOT OnlyTypeArguments..."); } //$NON-NLS-1$
+ case 621 : if (DEBUG) { System.out.println("MethodInvocation ::= super DOT OnlyTypeArguments..."); } //$NON-NLS-1$
consumeMethodInvocationSuperWithTypeArguments(); break;
- case 621 : if (DEBUG) { System.out.println("MethodInvocation ::= super DOT Identifier LPAREN..."); } //$NON-NLS-1$
+ case 622 : if (DEBUG) { System.out.println("MethodInvocation ::= super DOT Identifier LPAREN..."); } //$NON-NLS-1$
consumeMethodInvocationSuper(); break;
- case 622 : if (DEBUG) { System.out.println("ArrayAccess ::= Name LBRACKET Expression RBRACKET"); } //$NON-NLS-1$
+ case 623 : if (DEBUG) { System.out.println("ArrayAccess ::= Name LBRACKET Expression RBRACKET"); } //$NON-NLS-1$
consumeArrayAccess(true); break;
- case 623 : if (DEBUG) { System.out.println("ArrayAccess ::= PrimaryNoNewArray LBRACKET Expression..."); } //$NON-NLS-1$
+ case 624 : if (DEBUG) { System.out.println("ArrayAccess ::= PrimaryNoNewArray LBRACKET Expression..."); } //$NON-NLS-1$
consumeArrayAccess(false); break;
- case 624 : if (DEBUG) { System.out.println("ArrayAccess ::= ArrayCreationWithArrayInitializer..."); } //$NON-NLS-1$
+ case 625 : if (DEBUG) { System.out.println("ArrayAccess ::= ArrayCreationWithArrayInitializer..."); } //$NON-NLS-1$
consumeArrayAccess(false); break;
- case 626 : if (DEBUG) { System.out.println("PostfixExpression ::= Name"); } //$NON-NLS-1$
+ case 627 : if (DEBUG) { System.out.println("PostfixExpression ::= Name"); } //$NON-NLS-1$
consumePostfixExpression(); break;
- case 629 : if (DEBUG) { System.out.println("PostIncrementExpression ::= PostfixExpression PLUS_PLUS"); } //$NON-NLS-1$
+ case 630 : if (DEBUG) { System.out.println("PostIncrementExpression ::= PostfixExpression PLUS_PLUS"); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.PLUS,true); break;
- case 630 : if (DEBUG) { System.out.println("PostDecrementExpression ::= PostfixExpression..."); } //$NON-NLS-1$
+ case 631 : if (DEBUG) { System.out.println("PostDecrementExpression ::= PostfixExpression..."); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.MINUS,true); break;
- case 631 : if (DEBUG) { System.out.println("PushPosition ::="); } //$NON-NLS-1$
+ case 632 : if (DEBUG) { System.out.println("PushPosition ::="); } //$NON-NLS-1$
consumePushPosition(); break;
- case 634 : if (DEBUG) { System.out.println("UnaryExpression ::= PLUS PushPosition UnaryExpression"); } //$NON-NLS-1$
+ case 635 : if (DEBUG) { System.out.println("UnaryExpression ::= PLUS PushPosition UnaryExpression"); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.PLUS); break;
- case 635 : if (DEBUG) { System.out.println("UnaryExpression ::= MINUS PushPosition UnaryExpression"); } //$NON-NLS-1$
+ case 636 : if (DEBUG) { System.out.println("UnaryExpression ::= MINUS PushPosition UnaryExpression"); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.MINUS); break;
- case 637 : if (DEBUG) { System.out.println("PreIncrementExpression ::= PLUS_PLUS PushPosition..."); } //$NON-NLS-1$
+ case 638 : if (DEBUG) { System.out.println("PreIncrementExpression ::= PLUS_PLUS PushPosition..."); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.PLUS,false); break;
- case 638 : if (DEBUG) { System.out.println("PreDecrementExpression ::= MINUS_MINUS PushPosition..."); } //$NON-NLS-1$
+ case 639 : if (DEBUG) { System.out.println("PreDecrementExpression ::= MINUS_MINUS PushPosition..."); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.MINUS,false); break;
- case 640 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus ::= TWIDDLE PushPosition..."); } //$NON-NLS-1$
+ case 641 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus ::= TWIDDLE PushPosition..."); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.TWIDDLE); break;
- case 641 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus ::= NOT PushPosition..."); } //$NON-NLS-1$
+ case 642 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus ::= NOT PushPosition..."); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.NOT); break;
- case 643 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN PrimitiveType Dimsopt..."); } //$NON-NLS-1$
+ case 644 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN PrimitiveType Dimsopt..."); } //$NON-NLS-1$
consumeCastExpressionWithPrimitiveType(); break;
- case 644 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name..."); } //$NON-NLS-1$
+ case 645 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name..."); } //$NON-NLS-1$
consumeCastExpressionWithGenericsArray(); break;
- case 645 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name..."); } //$NON-NLS-1$
+ case 646 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name..."); } //$NON-NLS-1$
consumeCastExpressionWithQualifiedGenericsArray(); break;
- case 646 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name PushRPAREN..."); } //$NON-NLS-1$
+ case 647 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name PushRPAREN..."); } //$NON-NLS-1$
consumeCastExpressionLL1(); break;
- case 647 : if (DEBUG) { System.out.println("CastExpression ::= BeginIntersectionCast PushLPAREN..."); } //$NON-NLS-1$
+ case 648 : if (DEBUG) { System.out.println("CastExpression ::= BeginIntersectionCast PushLPAREN..."); } //$NON-NLS-1$
consumeCastExpressionLL1WithBounds(); break;
- case 648 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name Dims..."); } //$NON-NLS-1$
+ case 649 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name Dims..."); } //$NON-NLS-1$
consumeCastExpressionWithNameArray(); break;
- case 649 : if (DEBUG) { System.out.println("AdditionalBoundsListOpt ::="); } //$NON-NLS-1$
+ case 650 : if (DEBUG) { System.out.println("AdditionalBoundsListOpt ::="); } //$NON-NLS-1$
consumeZeroAdditionalBounds(); break;
- case 653 : if (DEBUG) { System.out.println("OnlyTypeArgumentsForCastExpression ::= OnlyTypeArguments"); } //$NON-NLS-1$
+ case 654 : if (DEBUG) { System.out.println("OnlyTypeArgumentsForCastExpression ::= OnlyTypeArguments"); } //$NON-NLS-1$
consumeOnlyTypeArgumentsForCastExpression(); break;
- case 654 : if (DEBUG) { System.out.println("InsideCastExpression ::="); } //$NON-NLS-1$
+ case 655 : if (DEBUG) { System.out.println("InsideCastExpression ::="); } //$NON-NLS-1$
consumeInsideCastExpression(); break;
- case 655 : if (DEBUG) { System.out.println("InsideCastExpressionLL1 ::="); } //$NON-NLS-1$
+ case 656 : if (DEBUG) { System.out.println("InsideCastExpressionLL1 ::="); } //$NON-NLS-1$
consumeInsideCastExpressionLL1(); break;
- case 656 : if (DEBUG) { System.out.println("InsideCastExpressionLL1WithBounds ::="); } //$NON-NLS-1$
+ case 657 : if (DEBUG) { System.out.println("InsideCastExpressionLL1WithBounds ::="); } //$NON-NLS-1$
consumeInsideCastExpressionLL1WithBounds (); break;
- case 657 : if (DEBUG) { System.out.println("InsideCastExpressionWithQualifiedGenerics ::="); } //$NON-NLS-1$
+ case 658 : if (DEBUG) { System.out.println("InsideCastExpressionWithQualifiedGenerics ::="); } //$NON-NLS-1$
consumeInsideCastExpressionWithQualifiedGenerics(); break;
- case 659 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$
+ case 660 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.MULTIPLY); break;
- case 660 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$
+ case 661 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.DIVIDE); break;
- case 661 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$
+ case 662 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.REMAINDER); break;
- case 663 : if (DEBUG) { System.out.println("AdditiveExpression ::= AdditiveExpression PLUS..."); } //$NON-NLS-1$
+ case 664 : if (DEBUG) { System.out.println("AdditiveExpression ::= AdditiveExpression PLUS..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.PLUS); break;
- case 664 : if (DEBUG) { System.out.println("AdditiveExpression ::= AdditiveExpression MINUS..."); } //$NON-NLS-1$
+ case 665 : if (DEBUG) { System.out.println("AdditiveExpression ::= AdditiveExpression MINUS..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.MINUS); break;
- case 666 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression LEFT_SHIFT..."); } //$NON-NLS-1$
+ case 667 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression LEFT_SHIFT..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.LEFT_SHIFT); break;
- case 667 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression RIGHT_SHIFT..."); } //$NON-NLS-1$
+ case 668 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression RIGHT_SHIFT..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.RIGHT_SHIFT); break;
- case 668 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression UNSIGNED_RIGHT_SHIFT"); } //$NON-NLS-1$
+ case 669 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression UNSIGNED_RIGHT_SHIFT"); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.UNSIGNED_RIGHT_SHIFT); break;
- case 670 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression LESS..."); } //$NON-NLS-1$
+ case 671 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression LESS..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.LESS); break;
- case 671 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression GREATER..."); } //$NON-NLS-1$
+ case 672 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression GREATER..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.GREATER); break;
- case 672 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression LESS_EQUAL"); } //$NON-NLS-1$
+ case 673 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression LESS_EQUAL"); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.LESS_EQUAL); break;
- case 673 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression..."); } //$NON-NLS-1$
+ case 674 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.GREATER_EQUAL); break;
- case 675 : if (DEBUG) { System.out.println("EqualityExpression ::= EqualityExpression EQUAL_EQUAL..."); } //$NON-NLS-1$
+ case 676 : if (DEBUG) { System.out.println("EqualityExpression ::= EqualityExpression EQUAL_EQUAL..."); } //$NON-NLS-1$
consumeEqualityExpression(OperatorIds.EQUAL_EQUAL); break;
- case 676 : if (DEBUG) { System.out.println("EqualityExpression ::= EqualityExpression NOT_EQUAL..."); } //$NON-NLS-1$
+ case 677 : if (DEBUG) { System.out.println("EqualityExpression ::= EqualityExpression NOT_EQUAL..."); } //$NON-NLS-1$
consumeEqualityExpression(OperatorIds.NOT_EQUAL); break;
- case 678 : if (DEBUG) { System.out.println("AndExpression ::= AndExpression AND EqualityExpression"); } //$NON-NLS-1$
+ case 679 : if (DEBUG) { System.out.println("AndExpression ::= AndExpression AND EqualityExpression"); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.AND); break;
- case 680 : if (DEBUG) { System.out.println("ExclusiveOrExpression ::= ExclusiveOrExpression XOR..."); } //$NON-NLS-1$
+ case 681 : if (DEBUG) { System.out.println("ExclusiveOrExpression ::= ExclusiveOrExpression XOR..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.XOR); break;
- case 682 : if (DEBUG) { System.out.println("InclusiveOrExpression ::= InclusiveOrExpression OR..."); } //$NON-NLS-1$
+ case 683 : if (DEBUG) { System.out.println("InclusiveOrExpression ::= InclusiveOrExpression OR..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.OR); break;
- case 684 : if (DEBUG) { System.out.println("ConditionalAndExpression ::= ConditionalAndExpression..."); } //$NON-NLS-1$
+ case 685 : if (DEBUG) { System.out.println("ConditionalAndExpression ::= ConditionalAndExpression..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.AND_AND); break;
- case 686 : if (DEBUG) { System.out.println("ConditionalOrExpression ::= ConditionalOrExpression..."); } //$NON-NLS-1$
+ case 687 : if (DEBUG) { System.out.println("ConditionalOrExpression ::= ConditionalOrExpression..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.OR_OR); break;
- case 688 : if (DEBUG) { System.out.println("ConditionalExpression ::= ConditionalOrExpression..."); } //$NON-NLS-1$
+ case 689 : if (DEBUG) { System.out.println("ConditionalExpression ::= ConditionalOrExpression..."); } //$NON-NLS-1$
consumeConditionalExpression(OperatorIds.QUESTIONCOLON) ; break;
- case 691 : if (DEBUG) { System.out.println("Assignment ::= PostfixExpression AssignmentOperator..."); } //$NON-NLS-1$
+ case 692 : if (DEBUG) { System.out.println("Assignment ::= PostfixExpression AssignmentOperator..."); } //$NON-NLS-1$
consumeAssignment(); break;
- case 693 : if (DEBUG) { System.out.println("Assignment ::= InvalidArrayInitializerAssignement"); } //$NON-NLS-1$
+ case 694 : if (DEBUG) { System.out.println("Assignment ::= InvalidArrayInitializerAssignement"); } //$NON-NLS-1$
ignoreExpressionAssignment(); break;
- case 694 : if (DEBUG) { System.out.println("AssignmentOperator ::= EQUAL"); } //$NON-NLS-1$
+ case 695 : if (DEBUG) { System.out.println("AssignmentOperator ::= EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(EQUAL); break;
- case 695 : if (DEBUG) { System.out.println("AssignmentOperator ::= MULTIPLY_EQUAL"); } //$NON-NLS-1$
+ case 696 : if (DEBUG) { System.out.println("AssignmentOperator ::= MULTIPLY_EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(MULTIPLY); break;
- case 696 : if (DEBUG) { System.out.println("AssignmentOperator ::= DIVIDE_EQUAL"); } //$NON-NLS-1$
+ case 697 : if (DEBUG) { System.out.println("AssignmentOperator ::= DIVIDE_EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(DIVIDE); break;
- case 697 : if (DEBUG) { System.out.println("AssignmentOperator ::= REMAINDER_EQUAL"); } //$NON-NLS-1$
+ case 698 : if (DEBUG) { System.out.println("AssignmentOperator ::= REMAINDER_EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(REMAINDER); break;
- case 698 : if (DEBUG) { System.out.println("AssignmentOperator ::= PLUS_EQUAL"); } //$NON-NLS-1$
+ case 699 : if (DEBUG) { System.out.println("AssignmentOperator ::= PLUS_EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(PLUS); break;
- case 699 : if (DEBUG) { System.out.println("AssignmentOperator ::= MINUS_EQUAL"); } //$NON-NLS-1$
+ case 700 : if (DEBUG) { System.out.println("AssignmentOperator ::= MINUS_EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(MINUS); break;
- case 700 : if (DEBUG) { System.out.println("AssignmentOperator ::= LEFT_SHIFT_EQUAL"); } //$NON-NLS-1$
+ case 701 : if (DEBUG) { System.out.println("AssignmentOperator ::= LEFT_SHIFT_EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(LEFT_SHIFT); break;
- case 701 : if (DEBUG) { System.out.println("AssignmentOperator ::= RIGHT_SHIFT_EQUAL"); } //$NON-NLS-1$
+ case 702 : if (DEBUG) { System.out.println("AssignmentOperator ::= RIGHT_SHIFT_EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(RIGHT_SHIFT); break;
- case 702 : if (DEBUG) { System.out.println("AssignmentOperator ::= UNSIGNED_RIGHT_SHIFT_EQUAL"); } //$NON-NLS-1$
+ case 703 : if (DEBUG) { System.out.println("AssignmentOperator ::= UNSIGNED_RIGHT_SHIFT_EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(UNSIGNED_RIGHT_SHIFT); break;
- case 703 : if (DEBUG) { System.out.println("AssignmentOperator ::= AND_EQUAL"); } //$NON-NLS-1$
+ case 704 : if (DEBUG) { System.out.println("AssignmentOperator ::= AND_EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(AND); break;
- case 704 : if (DEBUG) { System.out.println("AssignmentOperator ::= XOR_EQUAL"); } //$NON-NLS-1$
+ case 705 : if (DEBUG) { System.out.println("AssignmentOperator ::= XOR_EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(XOR); break;
- case 705 : if (DEBUG) { System.out.println("AssignmentOperator ::= OR_EQUAL"); } //$NON-NLS-1$
+ case 706 : if (DEBUG) { System.out.println("AssignmentOperator ::= OR_EQUAL"); } //$NON-NLS-1$
consumeAssignmentOperator(OR); break;
- case 706 : if (DEBUG) { System.out.println("Expression ::= AssignmentExpression"); } //$NON-NLS-1$
+ case 707 : if (DEBUG) { System.out.println("Expression ::= AssignmentExpression"); } //$NON-NLS-1$
consumeExpression(); break;
- case 709 : if (DEBUG) { System.out.println("Expressionopt ::="); } //$NON-NLS-1$
+ case 710 : if (DEBUG) { System.out.println("Expressionopt ::="); } //$NON-NLS-1$
consumeEmptyExpression(); break;
- case 714 : if (DEBUG) { System.out.println("ClassBodyDeclarationsopt ::="); } //$NON-NLS-1$
+ case 715 : if (DEBUG) { System.out.println("ClassBodyDeclarationsopt ::="); } //$NON-NLS-1$
consumeEmptyClassBodyDeclarationsopt(); break;
- case 715 : if (DEBUG) { System.out.println("ClassBodyDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$
+ case 716 : if (DEBUG) { System.out.println("ClassBodyDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$
consumeClassBodyDeclarationsopt(); break;
- case 716 : if (DEBUG) { System.out.println("Modifiersopt ::="); } //$NON-NLS-1$
+ case 717 : if (DEBUG) { System.out.println("Modifiersopt ::="); } //$NON-NLS-1$
consumeDefaultModifiers(); break;
- case 717 : if (DEBUG) { System.out.println("Modifiersopt ::= Modifiers"); } //$NON-NLS-1$
+ case 718 : if (DEBUG) { System.out.println("Modifiersopt ::= Modifiers"); } //$NON-NLS-1$
consumeModifiers(); break;
- case 718 : if (DEBUG) { System.out.println("BlockStatementsopt ::="); } //$NON-NLS-1$
+ case 719 : if (DEBUG) { System.out.println("BlockStatementsopt ::="); } //$NON-NLS-1$
consumeEmptyBlockStatementsopt(); break;
- case 720 : if (DEBUG) { System.out.println("Dimsopt ::="); } //$NON-NLS-1$
+ case 721 : if (DEBUG) { System.out.println("Dimsopt ::="); } //$NON-NLS-1$
consumeEmptyDimsopt(); break;
- case 722 : if (DEBUG) { System.out.println("ArgumentListopt ::="); } //$NON-NLS-1$
+ case 723 : if (DEBUG) { System.out.println("ArgumentListopt ::="); } //$NON-NLS-1$
consumeEmptyArgumentListopt(); break;
- case 726 : if (DEBUG) { System.out.println("FormalParameterListopt ::="); } //$NON-NLS-1$
+ case 727 : if (DEBUG) { System.out.println("FormalParameterListopt ::="); } //$NON-NLS-1$
consumeFormalParameterListopt(); break;
- case 731 : if (DEBUG) { System.out.println("PermittedTypesopt ::= permits ClassTypeList"); } //$NON-NLS-1$
+ case 733 : if (DEBUG) { System.out.println("PermittedTypesopt ::= RestrictedIdentifierpermits..."); } //$NON-NLS-1$
consumePermittedTypes(); break;
- case 732 : if (DEBUG) { System.out.println("InterfaceMemberDeclarationsopt ::="); } //$NON-NLS-1$
+ case 734 : if (DEBUG) { System.out.println("InterfaceMemberDeclarationsopt ::="); } //$NON-NLS-1$
consumeEmptyInterfaceMemberDeclarationsopt(); break;
- case 733 : if (DEBUG) { System.out.println("InterfaceMemberDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$
+ case 735 : if (DEBUG) { System.out.println("InterfaceMemberDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$
consumeInterfaceMemberDeclarationsopt(); break;
- case 734 : if (DEBUG) { System.out.println("NestedType ::="); } //$NON-NLS-1$
+ case 736 : if (DEBUG) { System.out.println("NestedType ::="); } //$NON-NLS-1$
consumeNestedType(); break;
- case 735 : if (DEBUG) { System.out.println("ForInitopt ::="); } //$NON-NLS-1$
+ case 737 : if (DEBUG) { System.out.println("ForInitopt ::="); } //$NON-NLS-1$
consumeEmptyForInitopt(); break;
- case 737 : if (DEBUG) { System.out.println("ForUpdateopt ::="); } //$NON-NLS-1$
+ case 739 : if (DEBUG) { System.out.println("ForUpdateopt ::="); } //$NON-NLS-1$
consumeEmptyForUpdateopt(); break;
- case 741 : if (DEBUG) { System.out.println("Catchesopt ::="); } //$NON-NLS-1$
+ case 743 : if (DEBUG) { System.out.println("Catchesopt ::="); } //$NON-NLS-1$
consumeEmptyCatchesopt(); break;
- case 743 : if (DEBUG) { System.out.println("EnumDeclaration ::= EnumHeader EnumBody"); } //$NON-NLS-1$
+ case 745 : if (DEBUG) { System.out.println("EnumDeclaration ::= EnumHeader EnumBody"); } //$NON-NLS-1$
consumeEnumDeclaration(); break;
- case 744 : if (DEBUG) { System.out.println("EnumHeader ::= EnumHeaderName ClassHeaderImplementsopt"); } //$NON-NLS-1$
+ case 746 : if (DEBUG) { System.out.println("EnumHeader ::= EnumHeaderName ClassHeaderImplementsopt"); } //$NON-NLS-1$
consumeEnumHeader(); break;
- case 745 : if (DEBUG) { System.out.println("EnumHeaderName ::= Modifiersopt enum Identifier"); } //$NON-NLS-1$
+ case 747 : if (DEBUG) { System.out.println("EnumHeaderName ::= Modifiersopt enum Identifier"); } //$NON-NLS-1$
consumeEnumHeaderName(); break;
- case 746 : if (DEBUG) { System.out.println("EnumHeaderName ::= Modifiersopt enum Identifier..."); } //$NON-NLS-1$
+ case 748 : if (DEBUG) { System.out.println("EnumHeaderName ::= Modifiersopt enum Identifier..."); } //$NON-NLS-1$
consumeEnumHeaderNameWithTypeParameters(); break;
- case 747 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumBodyDeclarationsopt RBRACE"); } //$NON-NLS-1$
+ case 749 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumBodyDeclarationsopt RBRACE"); } //$NON-NLS-1$
consumeEnumBodyNoConstants(); break;
- case 748 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE COMMA EnumBodyDeclarationsopt..."); } //$NON-NLS-1$
+ case 750 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE COMMA EnumBodyDeclarationsopt..."); } //$NON-NLS-1$
consumeEnumBodyNoConstants(); break;
- case 749 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumConstants COMMA..."); } //$NON-NLS-1$
+ case 751 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumConstants COMMA..."); } //$NON-NLS-1$
consumeEnumBodyWithConstants(); break;
- case 750 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumConstants..."); } //$NON-NLS-1$
+ case 752 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumConstants..."); } //$NON-NLS-1$
consumeEnumBodyWithConstants(); break;
- case 752 : if (DEBUG) { System.out.println("EnumConstants ::= EnumConstants COMMA EnumConstant"); } //$NON-NLS-1$
+ case 754 : if (DEBUG) { System.out.println("EnumConstants ::= EnumConstants COMMA EnumConstant"); } //$NON-NLS-1$
consumeEnumConstants(); break;
- case 753 : if (DEBUG) { System.out.println("EnumConstantHeaderName ::= Modifiersopt Identifier"); } //$NON-NLS-1$
+ case 755 : if (DEBUG) { System.out.println("EnumConstantHeaderName ::= Modifiersopt Identifier"); } //$NON-NLS-1$
consumeEnumConstantHeaderName(); break;
- case 754 : if (DEBUG) { System.out.println("EnumConstantHeader ::= EnumConstantHeaderName..."); } //$NON-NLS-1$
+ case 756 : if (DEBUG) { System.out.println("EnumConstantHeader ::= EnumConstantHeaderName..."); } //$NON-NLS-1$
consumeEnumConstantHeader(); break;
- case 755 : if (DEBUG) { System.out.println("EnumConstant ::= EnumConstantHeader ForceNoDiet..."); } //$NON-NLS-1$
+ case 757 : if (DEBUG) { System.out.println("EnumConstant ::= EnumConstantHeader ForceNoDiet..."); } //$NON-NLS-1$
consumeEnumConstantWithClassBody(); break;
- case 756 : if (DEBUG) { System.out.println("EnumConstant ::= EnumConstantHeader"); } //$NON-NLS-1$
+ case 758 : if (DEBUG) { System.out.println("EnumConstant ::= EnumConstantHeader"); } //$NON-NLS-1$
consumeEnumConstantNoClassBody(); break;
- case 757 : if (DEBUG) { System.out.println("Arguments ::= LPAREN ArgumentListopt RPAREN"); } //$NON-NLS-1$
+ case 759 : if (DEBUG) { System.out.println("Arguments ::= LPAREN ArgumentListopt RPAREN"); } //$NON-NLS-1$
consumeArguments(); break;
- case 758 : if (DEBUG) { System.out.println("Argumentsopt ::="); } //$NON-NLS-1$
+ case 760 : if (DEBUG) { System.out.println("Argumentsopt ::="); } //$NON-NLS-1$
consumeEmptyArguments(); break;
- case 760 : if (DEBUG) { System.out.println("EnumDeclarations ::= SEMICOLON ClassBodyDeclarationsopt"); } //$NON-NLS-1$
+ case 762 : if (DEBUG) { System.out.println("EnumDeclarations ::= SEMICOLON ClassBodyDeclarationsopt"); } //$NON-NLS-1$
consumeEnumDeclarations(); break;
- case 761 : if (DEBUG) { System.out.println("EnumBodyDeclarationsopt ::="); } //$NON-NLS-1$
+ case 763 : if (DEBUG) { System.out.println("EnumBodyDeclarationsopt ::="); } //$NON-NLS-1$
consumeEmptyEnumDeclarations(); break;
- case 763 : if (DEBUG) { System.out.println("EnhancedForStatement ::= EnhancedForStatementHeader..."); } //$NON-NLS-1$
+ case 765 : if (DEBUG) { System.out.println("EnhancedForStatement ::= EnhancedForStatementHeader..."); } //$NON-NLS-1$
consumeEnhancedForStatement(); break;
- case 764 : if (DEBUG) { System.out.println("EnhancedForStatementNoShortIf ::=..."); } //$NON-NLS-1$
+ case 766 : if (DEBUG) { System.out.println("EnhancedForStatementNoShortIf ::=..."); } //$NON-NLS-1$
consumeEnhancedForStatement(); break;
- case 765 : if (DEBUG) { System.out.println("EnhancedForStatementHeaderInit ::= for LPAREN Type..."); } //$NON-NLS-1$
+ case 767 : if (DEBUG) { System.out.println("EnhancedForStatementHeaderInit ::= for LPAREN Type..."); } //$NON-NLS-1$
consumeEnhancedForStatementHeaderInit(false); break;
- case 766 : if (DEBUG) { System.out.println("EnhancedForStatementHeaderInit ::= for LPAREN Modifiers"); } //$NON-NLS-1$
+ case 768 : if (DEBUG) { System.out.println("EnhancedForStatementHeaderInit ::= for LPAREN Modifiers"); } //$NON-NLS-1$
consumeEnhancedForStatementHeaderInit(true); break;
- case 767 : if (DEBUG) { System.out.println("EnhancedForStatementHeader ::=..."); } //$NON-NLS-1$
+ case 769 : if (DEBUG) { System.out.println("EnhancedForStatementHeader ::=..."); } //$NON-NLS-1$
consumeEnhancedForStatementHeader(); break;
- case 768 : if (DEBUG) { System.out.println("SingleStaticImportDeclaration ::=..."); } //$NON-NLS-1$
+ case 770 : if (DEBUG) { System.out.println("SingleStaticImportDeclaration ::=..."); } //$NON-NLS-1$
consumeImportDeclaration(); break;
- case 769 : if (DEBUG) { System.out.println("SingleStaticImportDeclarationName ::= import static Name"); } //$NON-NLS-1$
+ case 771 : if (DEBUG) { System.out.println("SingleStaticImportDeclarationName ::= import static Name"); } //$NON-NLS-1$
consumeSingleStaticImportDeclarationName(); break;
- case 770 : if (DEBUG) { System.out.println("StaticImportOnDemandDeclaration ::=..."); } //$NON-NLS-1$
+ case 772 : if (DEBUG) { System.out.println("StaticImportOnDemandDeclaration ::=..."); } //$NON-NLS-1$
consumeImportDeclaration(); break;
- case 771 : if (DEBUG) { System.out.println("StaticImportOnDemandDeclarationName ::= import static..."); } //$NON-NLS-1$
+ case 773 : if (DEBUG) { System.out.println("StaticImportOnDemandDeclarationName ::= import static..."); } //$NON-NLS-1$
consumeStaticImportOnDemandDeclarationName(); break;
- case 772 : if (DEBUG) { System.out.println("TypeArguments ::= LESS TypeArgumentList1"); } //$NON-NLS-1$
+ case 774 : if (DEBUG) { System.out.println("TypeArguments ::= LESS TypeArgumentList1"); } //$NON-NLS-1$
consumeTypeArguments(); break;
- case 773 : if (DEBUG) { System.out.println("OnlyTypeArguments ::= LESS TypeArgumentList1"); } //$NON-NLS-1$
+ case 775 : if (DEBUG) { System.out.println("OnlyTypeArguments ::= LESS TypeArgumentList1"); } //$NON-NLS-1$
consumeOnlyTypeArguments(); break;
- case 775 : if (DEBUG) { System.out.println("TypeArgumentList1 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$
+ case 777 : if (DEBUG) { System.out.println("TypeArgumentList1 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$
consumeTypeArgumentList1(); break;
- case 777 : if (DEBUG) { System.out.println("TypeArgumentList ::= TypeArgumentList COMMA TypeArgument"); } //$NON-NLS-1$
+ case 779 : if (DEBUG) { System.out.println("TypeArgumentList ::= TypeArgumentList COMMA TypeArgument"); } //$NON-NLS-1$
consumeTypeArgumentList(); break;
- case 778 : if (DEBUG) { System.out.println("TypeArgument ::= ReferenceType"); } //$NON-NLS-1$
+ case 780 : if (DEBUG) { System.out.println("TypeArgument ::= ReferenceType"); } //$NON-NLS-1$
consumeTypeArgument(); break;
- case 782 : if (DEBUG) { System.out.println("ReferenceType1 ::= ReferenceType GREATER"); } //$NON-NLS-1$
+ case 784 : if (DEBUG) { System.out.println("ReferenceType1 ::= ReferenceType GREATER"); } //$NON-NLS-1$
consumeReferenceType1(); break;
- case 783 : if (DEBUG) { System.out.println("ReferenceType1 ::= ClassOrInterface LESS..."); } //$NON-NLS-1$
+ case 785 : if (DEBUG) { System.out.println("ReferenceType1 ::= ClassOrInterface LESS..."); } //$NON-NLS-1$
consumeTypeArgumentReferenceType1(); break;
- case 785 : if (DEBUG) { System.out.println("TypeArgumentList2 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$
+ case 787 : if (DEBUG) { System.out.println("TypeArgumentList2 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$
consumeTypeArgumentList2(); break;
- case 788 : if (DEBUG) { System.out.println("ReferenceType2 ::= ReferenceType RIGHT_SHIFT"); } //$NON-NLS-1$
+ case 790 : if (DEBUG) { System.out.println("ReferenceType2 ::= ReferenceType RIGHT_SHIFT"); } //$NON-NLS-1$
consumeReferenceType2(); break;
- case 789 : if (DEBUG) { System.out.println("ReferenceType2 ::= ClassOrInterface LESS..."); } //$NON-NLS-1$
+ case 791 : if (DEBUG) { System.out.println("ReferenceType2 ::= ClassOrInterface LESS..."); } //$NON-NLS-1$
consumeTypeArgumentReferenceType2(); break;
- case 791 : if (DEBUG) { System.out.println("TypeArgumentList3 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$
+ case 793 : if (DEBUG) { System.out.println("TypeArgumentList3 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$
consumeTypeArgumentList3(); break;
- case 794 : if (DEBUG) { System.out.println("ReferenceType3 ::= ReferenceType UNSIGNED_RIGHT_SHIFT"); } //$NON-NLS-1$
+ case 796 : if (DEBUG) { System.out.println("ReferenceType3 ::= ReferenceType UNSIGNED_RIGHT_SHIFT"); } //$NON-NLS-1$
consumeReferenceType3(); break;
- case 795 : if (DEBUG) { System.out.println("Wildcard ::= TypeAnnotationsopt QUESTION"); } //$NON-NLS-1$
+ case 797 : if (DEBUG) { System.out.println("Wildcard ::= TypeAnnotationsopt QUESTION"); } //$NON-NLS-1$
consumeWildcard(); break;
- case 796 : if (DEBUG) { System.out.println("Wildcard ::= TypeAnnotationsopt QUESTION WildcardBounds"); } //$NON-NLS-1$
+ case 798 : if (DEBUG) { System.out.println("Wildcard ::= TypeAnnotationsopt QUESTION WildcardBounds"); } //$NON-NLS-1$
consumeWildcardWithBounds(); break;
- case 797 : if (DEBUG) { System.out.println("WildcardBounds ::= extends ReferenceType"); } //$NON-NLS-1$
+ case 799 : if (DEBUG) { System.out.println("WildcardBounds ::= extends ReferenceType"); } //$NON-NLS-1$
consumeWildcardBoundsExtends(); break;
- case 798 : if (DEBUG) { System.out.println("WildcardBounds ::= super ReferenceType"); } //$NON-NLS-1$
+ case 800 : if (DEBUG) { System.out.println("WildcardBounds ::= super ReferenceType"); } //$NON-NLS-1$
consumeWildcardBoundsSuper(); break;
- case 799 : if (DEBUG) { System.out.println("Wildcard1 ::= TypeAnnotationsopt QUESTION GREATER"); } //$NON-NLS-1$
+ case 801 : if (DEBUG) { System.out.println("Wildcard1 ::= TypeAnnotationsopt QUESTION GREATER"); } //$NON-NLS-1$
consumeWildcard1(); break;
- case 800 : if (DEBUG) { System.out.println("Wildcard1 ::= TypeAnnotationsopt QUESTION..."); } //$NON-NLS-1$
+ case 802 : if (DEBUG) { System.out.println("Wildcard1 ::= TypeAnnotationsopt QUESTION..."); } //$NON-NLS-1$
consumeWildcard1WithBounds(); break;
- case 801 : if (DEBUG) { System.out.println("WildcardBounds1 ::= extends ReferenceType1"); } //$NON-NLS-1$
+ case 803 : if (DEBUG) { System.out.println("WildcardBounds1 ::= extends ReferenceType1"); } //$NON-NLS-1$
consumeWildcardBounds1Extends(); break;
- case 802 : if (DEBUG) { System.out.println("WildcardBounds1 ::= super ReferenceType1"); } //$NON-NLS-1$
+ case 804 : if (DEBUG) { System.out.println("WildcardBounds1 ::= super ReferenceType1"); } //$NON-NLS-1$
consumeWildcardBounds1Super(); break;
- case 803 : if (DEBUG) { System.out.println("Wildcard2 ::= TypeAnnotationsopt QUESTION RIGHT_SHIFT"); } //$NON-NLS-1$
+ case 805 : if (DEBUG) { System.out.println("Wildcard2 ::= TypeAnnotationsopt QUESTION RIGHT_SHIFT"); } //$NON-NLS-1$
consumeWildcard2(); break;
- case 804 : if (DEBUG) { System.out.println("Wildcard2 ::= TypeAnnotationsopt QUESTION..."); } //$NON-NLS-1$
+ case 806 : if (DEBUG) { System.out.println("Wildcard2 ::= TypeAnnotationsopt QUESTION..."); } //$NON-NLS-1$
consumeWildcard2WithBounds(); break;
- case 805 : if (DEBUG) { System.out.println("WildcardBounds2 ::= extends ReferenceType2"); } //$NON-NLS-1$
+ case 807 : if (DEBUG) { System.out.println("WildcardBounds2 ::= extends ReferenceType2"); } //$NON-NLS-1$
consumeWildcardBounds2Extends(); break;
- case 806 : if (DEBUG) { System.out.println("WildcardBounds2 ::= super ReferenceType2"); } //$NON-NLS-1$
+ case 808 : if (DEBUG) { System.out.println("WildcardBounds2 ::= super ReferenceType2"); } //$NON-NLS-1$
consumeWildcardBounds2Super(); break;
- case 807 : if (DEBUG) { System.out.println("Wildcard3 ::= TypeAnnotationsopt QUESTION..."); } //$NON-NLS-1$
+ case 809 : if (DEBUG) { System.out.println("Wildcard3 ::= TypeAnnotationsopt QUESTION..."); } //$NON-NLS-1$
consumeWildcard3(); break;
- case 808 : if (DEBUG) { System.out.println("Wildcard3 ::= TypeAnnotationsopt QUESTION..."); } //$NON-NLS-1$
+ case 810 : if (DEBUG) { System.out.println("Wildcard3 ::= TypeAnnotationsopt QUESTION..."); } //$NON-NLS-1$
consumeWildcard3WithBounds(); break;
- case 809 : if (DEBUG) { System.out.println("WildcardBounds3 ::= extends ReferenceType3"); } //$NON-NLS-1$
+ case 811 : if (DEBUG) { System.out.println("WildcardBounds3 ::= extends ReferenceType3"); } //$NON-NLS-1$
consumeWildcardBounds3Extends(); break;
- case 810 : if (DEBUG) { System.out.println("WildcardBounds3 ::= super ReferenceType3"); } //$NON-NLS-1$
+ case 812 : if (DEBUG) { System.out.println("WildcardBounds3 ::= super ReferenceType3"); } //$NON-NLS-1$
consumeWildcardBounds3Super(); break;
- case 811 : if (DEBUG) { System.out.println("TypeParameterHeader ::= TypeAnnotationsopt Identifier"); } //$NON-NLS-1$
+ case 813 : if (DEBUG) { System.out.println("TypeParameterHeader ::= TypeAnnotationsopt Identifier"); } //$NON-NLS-1$
consumeTypeParameterHeader(); break;
- case 812 : if (DEBUG) { System.out.println("TypeParameters ::= LESS TypeParameterList1"); } //$NON-NLS-1$
+ case 814 : if (DEBUG) { System.out.println("TypeParameters ::= LESS TypeParameterList1"); } //$NON-NLS-1$
consumeTypeParameters(); break;
- case 814 : if (DEBUG) { System.out.println("TypeParameterList ::= TypeParameterList COMMA..."); } //$NON-NLS-1$
+ case 816 : if (DEBUG) { System.out.println("TypeParameterList ::= TypeParameterList COMMA..."); } //$NON-NLS-1$
consumeTypeParameterList(); break;
- case 816 : if (DEBUG) { System.out.println("TypeParameter ::= TypeParameterHeader extends..."); } //$NON-NLS-1$
+ case 818 : if (DEBUG) { System.out.println("TypeParameter ::= TypeParameterHeader extends..."); } //$NON-NLS-1$
consumeTypeParameterWithExtends(); break;
- case 817 : if (DEBUG) { System.out.println("TypeParameter ::= TypeParameterHeader extends..."); } //$NON-NLS-1$
+ case 819 : if (DEBUG) { System.out.println("TypeParameter ::= TypeParameterHeader extends..."); } //$NON-NLS-1$
consumeTypeParameterWithExtendsAndBounds(); break;
- case 819 : if (DEBUG) { System.out.println("AdditionalBoundList ::= AdditionalBoundList..."); } //$NON-NLS-1$
+ case 821 : if (DEBUG) { System.out.println("AdditionalBoundList ::= AdditionalBoundList..."); } //$NON-NLS-1$
consumeAdditionalBoundList(); break;
- case 820 : if (DEBUG) { System.out.println("AdditionalBound ::= AND ReferenceType"); } //$NON-NLS-1$
+ case 822 : if (DEBUG) { System.out.println("AdditionalBound ::= AND ReferenceType"); } //$NON-NLS-1$
consumeAdditionalBound(); break;
- case 822 : if (DEBUG) { System.out.println("TypeParameterList1 ::= TypeParameterList COMMA..."); } //$NON-NLS-1$
+ case 824 : if (DEBUG) { System.out.println("TypeParameterList1 ::= TypeParameterList COMMA..."); } //$NON-NLS-1$
consumeTypeParameterList1(); break;
- case 823 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader GREATER"); } //$NON-NLS-1$
+ case 825 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader GREATER"); } //$NON-NLS-1$
consumeTypeParameter1(); break;
- case 824 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader extends..."); } //$NON-NLS-1$
+ case 826 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader extends..."); } //$NON-NLS-1$
consumeTypeParameter1WithExtends(); break;
- case 825 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader extends..."); } //$NON-NLS-1$
+ case 827 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader extends..."); } //$NON-NLS-1$
consumeTypeParameter1WithExtendsAndBounds(); break;
- case 827 : if (DEBUG) { System.out.println("AdditionalBoundList1 ::= AdditionalBoundList..."); } //$NON-NLS-1$
+ case 829 : if (DEBUG) { System.out.println("AdditionalBoundList1 ::= AdditionalBoundList..."); } //$NON-NLS-1$
consumeAdditionalBoundList1(); break;
- case 828 : if (DEBUG) { System.out.println("AdditionalBound1 ::= AND ReferenceType1"); } //$NON-NLS-1$
+ case 830 : if (DEBUG) { System.out.println("AdditionalBound1 ::= AND ReferenceType1"); } //$NON-NLS-1$
consumeAdditionalBound1(); break;
- case 834 : if (DEBUG) { System.out.println("UnaryExpression_NotName ::= PLUS PushPosition..."); } //$NON-NLS-1$
+ case 836 : if (DEBUG) { System.out.println("UnaryExpression_NotName ::= PLUS PushPosition..."); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.PLUS); break;
- case 835 : if (DEBUG) { System.out.println("UnaryExpression_NotName ::= MINUS PushPosition..."); } //$NON-NLS-1$
+ case 837 : if (DEBUG) { System.out.println("UnaryExpression_NotName ::= MINUS PushPosition..."); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.MINUS); break;
- case 838 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus_NotName ::= TWIDDLE..."); } //$NON-NLS-1$
+ case 840 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus_NotName ::= TWIDDLE..."); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.TWIDDLE); break;
- case 839 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus_NotName ::= NOT PushPosition"); } //$NON-NLS-1$
+ case 841 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus_NotName ::= NOT PushPosition"); } //$NON-NLS-1$
consumeUnaryExpression(OperatorIds.NOT); break;
- case 842 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 844 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.MULTIPLY); break;
- case 843 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name MULTIPLY..."); } //$NON-NLS-1$
+ case 845 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name MULTIPLY..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.MULTIPLY); break;
- case 844 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 846 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.DIVIDE); break;
- case 845 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name DIVIDE..."); } //$NON-NLS-1$
+ case 847 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name DIVIDE..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.DIVIDE); break;
- case 846 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 848 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.REMAINDER); break;
- case 847 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name REMAINDER..."); } //$NON-NLS-1$
+ case 849 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name REMAINDER..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.REMAINDER); break;
- case 849 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 851 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::=..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.PLUS); break;
- case 850 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::= Name PLUS..."); } //$NON-NLS-1$
+ case 852 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::= Name PLUS..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.PLUS); break;
- case 851 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 853 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::=..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.MINUS); break;
- case 852 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::= Name MINUS..."); } //$NON-NLS-1$
+ case 854 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::= Name MINUS..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.MINUS); break;
- case 854 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$
+ case 856 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.LEFT_SHIFT); break;
- case 855 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name LEFT_SHIFT..."); } //$NON-NLS-1$
+ case 857 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name LEFT_SHIFT..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.LEFT_SHIFT); break;
- case 856 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$
+ case 858 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.RIGHT_SHIFT); break;
- case 857 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name RIGHT_SHIFT..."); } //$NON-NLS-1$
+ case 859 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name RIGHT_SHIFT..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.RIGHT_SHIFT); break;
- case 858 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$
+ case 860 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.UNSIGNED_RIGHT_SHIFT); break;
- case 859 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name UNSIGNED_RIGHT_SHIFT..."); } //$NON-NLS-1$
+ case 861 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name UNSIGNED_RIGHT_SHIFT..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.UNSIGNED_RIGHT_SHIFT); break;
- case 861 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= ShiftExpression_NotName"); } //$NON-NLS-1$
+ case 863 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= ShiftExpression_NotName"); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.LESS); break;
- case 862 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name LESS..."); } //$NON-NLS-1$
+ case 864 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name LESS..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.LESS); break;
- case 863 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= ShiftExpression_NotName"); } //$NON-NLS-1$
+ case 865 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= ShiftExpression_NotName"); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.GREATER); break;
- case 864 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name GREATER..."); } //$NON-NLS-1$
+ case 866 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name GREATER..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.GREATER); break;
- case 865 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 867 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::=..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.LESS_EQUAL); break;
- case 866 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name LESS_EQUAL..."); } //$NON-NLS-1$
+ case 868 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name LESS_EQUAL..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.LESS_EQUAL); break;
- case 867 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 869 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::=..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.GREATER_EQUAL); break;
- case 868 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name GREATER_EQUAL..."); } //$NON-NLS-1$
+ case 870 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name GREATER_EQUAL..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.GREATER_EQUAL); break;
- case 870 : if (DEBUG) { System.out.println("InstanceofExpression_NotName ::= Name InstanceofRHS"); } //$NON-NLS-1$
+ case 872 : if (DEBUG) { System.out.println("InstanceofExpression_NotName ::= Name InstanceofRHS"); } //$NON-NLS-1$
consumeInstanceOfExpressionWithName(); break;
- case 871 : if (DEBUG) { System.out.println("InstanceofExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 873 : if (DEBUG) { System.out.println("InstanceofExpression_NotName ::=..."); } //$NON-NLS-1$
consumeInstanceOfExpression(); break;
- case 873 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 875 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::=..."); } //$NON-NLS-1$
consumeEqualityExpression(OperatorIds.EQUAL_EQUAL); break;
- case 874 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::= Name EQUAL_EQUAL..."); } //$NON-NLS-1$
+ case 876 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::= Name EQUAL_EQUAL..."); } //$NON-NLS-1$
consumeEqualityExpressionWithName(OperatorIds.EQUAL_EQUAL); break;
- case 875 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 877 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::=..."); } //$NON-NLS-1$
consumeEqualityExpression(OperatorIds.NOT_EQUAL); break;
- case 876 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::= Name NOT_EQUAL..."); } //$NON-NLS-1$
+ case 878 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::= Name NOT_EQUAL..."); } //$NON-NLS-1$
consumeEqualityExpressionWithName(OperatorIds.NOT_EQUAL); break;
- case 878 : if (DEBUG) { System.out.println("AndExpression_NotName ::= AndExpression_NotName AND..."); } //$NON-NLS-1$
+ case 880 : if (DEBUG) { System.out.println("AndExpression_NotName ::= AndExpression_NotName AND..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.AND); break;
- case 879 : if (DEBUG) { System.out.println("AndExpression_NotName ::= Name AND EqualityExpression"); } //$NON-NLS-1$
+ case 881 : if (DEBUG) { System.out.println("AndExpression_NotName ::= Name AND EqualityExpression"); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.AND); break;
- case 881 : if (DEBUG) { System.out.println("ExclusiveOrExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 883 : if (DEBUG) { System.out.println("ExclusiveOrExpression_NotName ::=..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.XOR); break;
- case 882 : if (DEBUG) { System.out.println("ExclusiveOrExpression_NotName ::= Name XOR AndExpression"); } //$NON-NLS-1$
+ case 884 : if (DEBUG) { System.out.println("ExclusiveOrExpression_NotName ::= Name XOR AndExpression"); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.XOR); break;
- case 884 : if (DEBUG) { System.out.println("InclusiveOrExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 886 : if (DEBUG) { System.out.println("InclusiveOrExpression_NotName ::=..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.OR); break;
- case 885 : if (DEBUG) { System.out.println("InclusiveOrExpression_NotName ::= Name OR..."); } //$NON-NLS-1$
+ case 887 : if (DEBUG) { System.out.println("InclusiveOrExpression_NotName ::= Name OR..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.OR); break;
- case 887 : if (DEBUG) { System.out.println("ConditionalAndExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 889 : if (DEBUG) { System.out.println("ConditionalAndExpression_NotName ::=..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.AND_AND); break;
- case 888 : if (DEBUG) { System.out.println("ConditionalAndExpression_NotName ::= Name AND_AND..."); } //$NON-NLS-1$
+ case 890 : if (DEBUG) { System.out.println("ConditionalAndExpression_NotName ::= Name AND_AND..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.AND_AND); break;
- case 890 : if (DEBUG) { System.out.println("ConditionalOrExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 892 : if (DEBUG) { System.out.println("ConditionalOrExpression_NotName ::=..."); } //$NON-NLS-1$
consumeBinaryExpression(OperatorIds.OR_OR); break;
- case 891 : if (DEBUG) { System.out.println("ConditionalOrExpression_NotName ::= Name OR_OR..."); } //$NON-NLS-1$
+ case 893 : if (DEBUG) { System.out.println("ConditionalOrExpression_NotName ::= Name OR_OR..."); } //$NON-NLS-1$
consumeBinaryExpressionWithName(OperatorIds.OR_OR); break;
- case 893 : if (DEBUG) { System.out.println("ConditionalExpression_NotName ::=..."); } //$NON-NLS-1$
+ case 895 : if (DEBUG) { System.out.println("ConditionalExpression_NotName ::=..."); } //$NON-NLS-1$
consumeConditionalExpression(OperatorIds.QUESTIONCOLON) ; break;
- case 894 : if (DEBUG) { System.out.println("ConditionalExpression_NotName ::= Name QUESTION..."); } //$NON-NLS-1$
+ case 896 : if (DEBUG) { System.out.println("ConditionalExpression_NotName ::= Name QUESTION..."); } //$NON-NLS-1$
consumeConditionalExpressionWithName(OperatorIds.QUESTIONCOLON) ; break;
- case 898 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= Modifiers AT..."); } //$NON-NLS-1$
+ case 900 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= Modifiers AT..."); } //$NON-NLS-1$
consumeAnnotationTypeDeclarationHeaderName() ; break;
- case 899 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= Modifiers AT..."); } //$NON-NLS-1$
+ case 901 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= Modifiers AT..."); } //$NON-NLS-1$
consumeAnnotationTypeDeclarationHeaderNameWithTypeParameters() ; break;
- case 900 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= AT..."); } //$NON-NLS-1$
+ case 902 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= AT..."); } //$NON-NLS-1$
consumeAnnotationTypeDeclarationHeaderNameWithTypeParameters() ; break;
- case 901 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= AT..."); } //$NON-NLS-1$
+ case 903 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= AT..."); } //$NON-NLS-1$
consumeAnnotationTypeDeclarationHeaderName() ; break;
- case 902 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeader ::=..."); } //$NON-NLS-1$
+ case 904 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeader ::=..."); } //$NON-NLS-1$
consumeAnnotationTypeDeclarationHeader() ; break;
- case 903 : if (DEBUG) { System.out.println("AnnotationTypeDeclaration ::=..."); } //$NON-NLS-1$
+ case 905 : if (DEBUG) { System.out.println("AnnotationTypeDeclaration ::=..."); } //$NON-NLS-1$
consumeAnnotationTypeDeclaration() ; break;
- case 905 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarationsopt ::="); } //$NON-NLS-1$
+ case 907 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarationsopt ::="); } //$NON-NLS-1$
consumeEmptyAnnotationTypeMemberDeclarationsopt() ; break;
- case 906 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$
+ case 908 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$
consumeAnnotationTypeMemberDeclarationsopt() ; break;
- case 908 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarations ::=..."); } //$NON-NLS-1$
+ case 910 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarations ::=..."); } //$NON-NLS-1$
consumeAnnotationTypeMemberDeclarations() ; break;
- case 909 : if (DEBUG) { System.out.println("AnnotationMethodHeaderName ::= Modifiersopt..."); } //$NON-NLS-1$
+ case 911 : if (DEBUG) { System.out.println("AnnotationMethodHeaderName ::= Modifiersopt..."); } //$NON-NLS-1$
consumeMethodHeaderNameWithTypeParameters(true); break;
- case 910 : if (DEBUG) { System.out.println("AnnotationMethodHeaderName ::= Modifiersopt Type..."); } //$NON-NLS-1$
+ case 912 : if (DEBUG) { System.out.println("AnnotationMethodHeaderName ::= Modifiersopt Type..."); } //$NON-NLS-1$
consumeMethodHeaderName(true); break;
- case 911 : if (DEBUG) { System.out.println("AnnotationMethodHeaderDefaultValueopt ::="); } //$NON-NLS-1$
+ case 913 : if (DEBUG) { System.out.println("AnnotationMethodHeaderDefaultValueopt ::="); } //$NON-NLS-1$
consumeEmptyMethodHeaderDefaultValue() ; break;
- case 912 : if (DEBUG) { System.out.println("AnnotationMethodHeaderDefaultValueopt ::= DefaultValue"); } //$NON-NLS-1$
+ case 914 : if (DEBUG) { System.out.println("AnnotationMethodHeaderDefaultValueopt ::= DefaultValue"); } //$NON-NLS-1$
consumeMethodHeaderDefaultValue(); break;
- case 913 : if (DEBUG) { System.out.println("AnnotationMethodHeader ::= AnnotationMethodHeaderName..."); } //$NON-NLS-1$
+ case 915 : if (DEBUG) { System.out.println("AnnotationMethodHeader ::= AnnotationMethodHeaderName..."); } //$NON-NLS-1$
consumeMethodHeader(); break;
- case 914 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclaration ::=..."); } //$NON-NLS-1$
+ case 916 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclaration ::=..."); } //$NON-NLS-1$
consumeAnnotationTypeMemberDeclaration() ; break;
- case 922 : if (DEBUG) { System.out.println("AnnotationName ::= AT UnannotatableName"); } //$NON-NLS-1$
+ case 924 : if (DEBUG) { System.out.println("AnnotationName ::= AT UnannotatableName"); } //$NON-NLS-1$
consumeAnnotationName() ; break;
- case 923 : if (DEBUG) { System.out.println("NormalAnnotation ::= AnnotationName LPAREN..."); } //$NON-NLS-1$
+ case 925 : if (DEBUG) { System.out.println("NormalAnnotation ::= AnnotationName LPAREN..."); } //$NON-NLS-1$
consumeNormalAnnotation(false) ; break;
- case 924 : if (DEBUG) { System.out.println("MemberValuePairsopt ::="); } //$NON-NLS-1$
+ case 926 : if (DEBUG) { System.out.println("MemberValuePairsopt ::="); } //$NON-NLS-1$
consumeEmptyMemberValuePairsopt() ; break;
- case 927 : if (DEBUG) { System.out.println("MemberValuePairs ::= MemberValuePairs COMMA..."); } //$NON-NLS-1$
+ case 929 : if (DEBUG) { System.out.println("MemberValuePairs ::= MemberValuePairs COMMA..."); } //$NON-NLS-1$
consumeMemberValuePairs() ; break;
- case 928 : if (DEBUG) { System.out.println("MemberValuePair ::= SimpleName EQUAL EnterMemberValue..."); } //$NON-NLS-1$
+ case 930 : if (DEBUG) { System.out.println("MemberValuePair ::= SimpleName EQUAL EnterMemberValue..."); } //$NON-NLS-1$
consumeMemberValuePair() ; break;
- case 929 : if (DEBUG) { System.out.println("EnterMemberValue ::="); } //$NON-NLS-1$
+ case 931 : if (DEBUG) { System.out.println("EnterMemberValue ::="); } //$NON-NLS-1$
consumeEnterMemberValue() ; break;
- case 930 : if (DEBUG) { System.out.println("ExitMemberValue ::="); } //$NON-NLS-1$
+ case 932 : if (DEBUG) { System.out.println("ExitMemberValue ::="); } //$NON-NLS-1$
consumeExitMemberValue() ; break;
- case 932 : if (DEBUG) { System.out.println("MemberValue ::= Name"); } //$NON-NLS-1$
+ case 934 : if (DEBUG) { System.out.println("MemberValue ::= Name"); } //$NON-NLS-1$
consumeMemberValueAsName() ; break;
- case 935 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$
+ case 937 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$
consumeMemberValueArrayInitializer() ; break;
- case 936 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$
+ case 938 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$
consumeMemberValueArrayInitializer() ; break;
- case 937 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$
+ case 939 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$
consumeEmptyMemberValueArrayInitializer() ; break;
- case 938 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$
+ case 940 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$
consumeEmptyMemberValueArrayInitializer() ; break;
- case 939 : if (DEBUG) { System.out.println("EnterMemberValueArrayInitializer ::="); } //$NON-NLS-1$
+ case 941 : if (DEBUG) { System.out.println("EnterMemberValueArrayInitializer ::="); } //$NON-NLS-1$
consumeEnterMemberValueArrayInitializer() ; break;
- case 941 : if (DEBUG) { System.out.println("MemberValues ::= MemberValues COMMA MemberValue"); } //$NON-NLS-1$
+ case 943 : if (DEBUG) { System.out.println("MemberValues ::= MemberValues COMMA MemberValue"); } //$NON-NLS-1$
consumeMemberValues() ; break;
- case 942 : if (DEBUG) { System.out.println("MarkerAnnotation ::= AnnotationName"); } //$NON-NLS-1$
+ case 944 : if (DEBUG) { System.out.println("MarkerAnnotation ::= AnnotationName"); } //$NON-NLS-1$
consumeMarkerAnnotation(false) ; break;
- case 943 : if (DEBUG) { System.out.println("SingleMemberAnnotationMemberValue ::= MemberValue"); } //$NON-NLS-1$
+ case 945 : if (DEBUG) { System.out.println("SingleMemberAnnotationMemberValue ::= MemberValue"); } //$NON-NLS-1$
consumeSingleMemberAnnotationMemberValue() ; break;
- case 944 : if (DEBUG) { System.out.println("SingleMemberAnnotation ::= AnnotationName LPAREN..."); } //$NON-NLS-1$
+ case 946 : if (DEBUG) { System.out.println("SingleMemberAnnotation ::= AnnotationName LPAREN..."); } //$NON-NLS-1$
consumeSingleMemberAnnotation(false) ; break;
- case 945 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt TypeParameters"); } //$NON-NLS-1$
+ case 947 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt TypeParameters"); } //$NON-NLS-1$
consumeRecoveryMethodHeaderNameWithTypeParameters(); break;
- case 946 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt Type..."); } //$NON-NLS-1$
+ case 948 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt Type..."); } //$NON-NLS-1$
consumeRecoveryMethodHeaderName(); break;
- case 947 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= ModifiersWithDefault..."); } //$NON-NLS-1$
+ case 949 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= ModifiersWithDefault..."); } //$NON-NLS-1$
consumeRecoveryMethodHeaderNameWithTypeParameters(); break;
- case 948 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= ModifiersWithDefault Type"); } //$NON-NLS-1$
+ case 950 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= ModifiersWithDefault Type"); } //$NON-NLS-1$
consumeRecoveryMethodHeaderName(); break;
- case 949 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); } //$NON-NLS-1$
+ case 951 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); } //$NON-NLS-1$
consumeMethodHeader(); break;
- case 950 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); } //$NON-NLS-1$
+ case 952 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); } //$NON-NLS-1$
consumeMethodHeader(); break;
}
@@ -10020,7 +10019,7 @@ protected void consumeToken(int type) {
case TokenNametry :
pushOnIntStack(this.scanner.startPosition);
break;
- case TokenNamepermits:
+ case TokenNameRestrictedIdentifierpermits:
problemReporter().validateJavaFeatureSupport(JavaFeature.SEALED_CLASSES, this.scanner.startPosition,this.scanner.currentPosition - 1);
pushOnIntStack(this.scanner.startPosition);
break;
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/ParserBasicInformation.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/ParserBasicInformation.java
index c8ad0a5ea4..a8f39fa91f 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/ParserBasicInformation.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/ParserBasicInformation.java
@@ -22,20 +22,20 @@ public interface ParserBasicInformation {
ERROR_SYMBOL = 140,
MAX_NAME_LENGTH = 41,
- NUM_STATES = 1257,
+ NUM_STATES = 1260,
NT_OFFSET = 140,
SCOPE_UBOUND = 321,
SCOPE_SIZE = 322,
- LA_STATE_OFFSET = 18382,
+ LA_STATE_OFFSET = 18429,
MAX_LA = 1,
- NUM_RULES = 950,
+ NUM_RULES = 952,
NUM_TERMINALS = 140,
- NUM_NON_TERMINALS = 436,
- NUM_SYMBOLS = 576,
- START_STATE = 1355,
- EOFT_SYMBOL = 39,
- EOLT_SYMBOL = 39,
- ACCEPT_ACTION = 18381,
- ERROR_ACTION = 18382;
+ NUM_NON_TERMINALS = 437,
+ NUM_SYMBOLS = 577,
+ START_STATE = 1152,
+ EOFT_SYMBOL = 38,
+ EOLT_SYMBOL = 38,
+ ACCEPT_ACTION = 18428,
+ ERROR_ACTION = 18429;
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/RecoveredType.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/RecoveredType.java
index 53b71040f8..47eaa52204 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/RecoveredType.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/RecoveredType.java
@@ -802,7 +802,7 @@ public RecoveredElement updateOnOpeningBrace(int braceStart, int braceEnd){
case -1 :
case TokenNameextends :
case TokenNameimplements :
- case TokenNamepermits:
+ case TokenNameRestrictedIdentifierpermits:
case TokenNameGREATER :
case TokenNameRIGHT_SHIFT :
case TokenNameUNSIGNED_RIGHT_SHIFT :
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/Scanner.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/Scanner.java
index 01ca57558b..b7890367c0 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/Scanner.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/Scanner.java
@@ -17,11 +17,7 @@
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-import java.util.function.Predicate;
-
import org.eclipse.jdt.core.compiler.CharOperation;
import org.eclipse.jdt.core.compiler.InvalidInputException;
import org.eclipse.jdt.internal.compiler.CompilationResult;
@@ -210,9 +206,6 @@ enum ScanContext {
// text block support - 13
protected int textBlockOffset = -1;
- //Java 15 - first _ keyword appears
- Map _Keywords = null;
-
private final CharDeduplication deduplication = CharDeduplication.getThreadLocalInstance();
public Scanner() {
@@ -3438,10 +3431,28 @@ else if ((data[index] == 'o')
case 3 :
if ((data[++index] == 'e') && (data[++index] == 'w'))
return TokenNamenew;
- else {
- int token = checkFor_KeyWord(index - 1, length, data);
- return token != TokenNameNotAToken ? token : TokenNameIdentifier;
- }
+ else if (data == this.source && (data.length >= index + 10) // "non-sealed".length(); not handling unicode as of now in non-sealed
+ && (data[index] == 'o')
+ && (data[++index] == 'n')
+ && (data[++index] == '-')
+ && (data[++index] == 's')
+ && (data[++index] == 'e')
+ && (data[++index] == 'a')
+ && (data[++index] == 'l')
+ && (data[++index] == 'e')
+ && (data[++index] == 'd')
+ && !ScannerHelper.isJavaIdentifierPart(data[++index])) {
+ this.currentPosition += 7;
+ int t = disambiguatesRestrictedIdentifierWithLookAhead(TokenNamenon_sealed);
+ if (t == TokenNamenon_sealed) {
+ return TokenNamenon_sealed;
+ } else {
+ this.currentPosition -= 7;
+ return TokenNameIdentifier;
+ }
+
+ } else
+ return TokenNameIdentifier;
case 4 :
if ((data[++index] == 'u') && (data[++index] == 'l') && (data[++index] == 'l'))
return TokenNamenull;
@@ -3514,9 +3525,9 @@ else if ((data[index] == 'o')
&& (data[++index] == 'i')
&& (data[++index] == 't')
&& (data[++index] == 's')) {
- return disambiguatedToken(TokenNamepermits, this);
+ return disambiguatesRestrictedIdentifierWithLookAhead(TokenNameRestrictedIdentifierpermits);
} else
- return TokenNameIdentifier;
+ return TokenNameIdentifier;
}
case 8 :
if (areRestrictedModuleKeywordsActive()
@@ -3616,7 +3627,7 @@ else if ((data[index] == 'c')
&& (data[++index] == 'l')
&& (data[++index] == 'e')
&& (data[++index] == 'd')) {
- return disambiguatedRestrictedIdentifiersealed(TokenNameRestrictedIdentifiersealed);
+ return disambiguatesRestrictedIdentifierWithLookAhead(TokenNameRestrictedIdentifiersealed);
} else
return TokenNameIdentifier;
case 8 :
@@ -3799,25 +3810,6 @@ else if ((data[++index] == 'h')
}
}
-
-private int checkFor_KeyWord(int index, int length, char[] data) {
- if (this._Keywords == null) {
- this._Keywords = new HashMap<>(0);
- if (JavaFeature.RECORDS.isSupported(this.complianceLevel, this.previewEnabled)) {
- this._Keywords.put("non-sealed", TerminalTokens.TokenNamenon_sealed); //$NON-NLS-1$
- }
- }
- for (String key : this._Keywords.keySet()) {
- if (CharOperation.prefixEquals(key.toCharArray(), data, true /* isCaseSensitive */, index)) {
- this.currentPosition = this.currentPosition - length + key.length();
- if (this.currentPosition < this.eofPosition)
- this.currentCharacter = data[this.currentPosition];
- return this._Keywords.get(key);
- }
- }
- return TokenNameNotAToken;
-}
-
public int scanNumber(boolean dotPrefix) throws InvalidInputException {
//when entering this method the currentCharacter is the first
@@ -4285,7 +4277,7 @@ public String toStringAction(int act) {
return "null"; //$NON-NLS-1$
case TokenNamepackage :
return "package"; //$NON-NLS-1$
- case TokenNamepermits:
+ case TokenNameRestrictedIdentifierpermits:
return "permits"; //$NON-NLS-1$
case TokenNameprivate :
return "private"; //$NON-NLS-1$
@@ -4527,7 +4519,6 @@ public static boolean isKeyword(int token) {
case TerminalTokens.TokenNameinstanceof:
case TerminalTokens.TokenNamelong:
case TerminalTokens.TokenNamenew:
- case TerminalTokens.TokenNamenon_sealed:
case TerminalTokens.TokenNamenull:
case TerminalTokens.TokenNamenative:
case TerminalTokens.TokenNamepublic:
@@ -4554,8 +4545,9 @@ public static boolean isKeyword(int token) {
case TerminalTokens.TokenNameRestrictedIdentifierYield:
case TerminalTokens.TokenNameRestrictedIdentifierrecord:
case TerminalTokens.TokenNameRestrictedIdentifiersealed:
- case TerminalTokens.TokenNamepermits:
+ case TerminalTokens.TokenNameRestrictedIdentifierpermits:
case TerminalTokens.TokenNameRestrictedIdentifierWhen:
+ case TerminalTokens.TokenNamenon_sealed:
// making explicit - not a (restricted) keyword but restricted identifier.
//$FALL-THROUGH$
default:
@@ -4623,7 +4615,8 @@ private static class Goal {
static int BlockStatementoptRule = 0;
static int YieldStatementRule = 0;
static int SwitchLabelCaseLhsRule = 0;
- static int[] RestrictedIdentifierSealedRule;
+ static int[] ModifiersoptRules;
+ static int PermittedTypesRule;
static int[] PatternRules;
static Goal LambdaParameterListGoal;
@@ -4633,16 +4626,18 @@ private static class Goal {
static Goal BlockStatementoptGoal;
static Goal YieldStatementGoal;
static Goal SwitchLabelCaseLhsGoal;
- static Goal RestrictedIdentifierSealedGoal;
+ static Goal SealedModifierGoal;
+ static Goal PermittedTypesGoal;
static Goal PatternGoal;
- static int[] RestrictedIdentifierSealedFollow = { TokenNameclass, TokenNameinterface,
+ static int[] SealedModifierFollow = { TokenNameclass, TokenNameinterface,
TokenNameenum, TokenNameRestrictedIdentifierrecord };// Note: enum/record allowed as error flagging rules.
+ static int[] PermittedTypesFollow = { TokenNameLBRACE };
static int[] PatternCaseLabelFollow = {TokenNameCOLON, TokenNameARROW, TokenNameCOMMA, TokenNameBeginCaseExpr, TokenNameRestrictedIdentifierWhen};
static {
- List ridSealed = new ArrayList<>(2);
+ List modifiersOptStates = new ArrayList<>(2);
List patternStates = new ArrayList<>();
for (int i = 1; i <= ParserBasicInformation.NUM_RULES; i++) { // 0 == $acc
// TODO: Change to switch
@@ -4665,7 +4660,10 @@ private static class Goal {
YieldStatementRule = i;
else
if ("Modifiersopt".equals(Parser.name[Parser.non_terminal_index[Parser.lhs[i]]])) //$NON-NLS-1$
- ridSealed.add(i);
+ modifiersOptStates.add(i);
+ else
+ if ("PermittedTypes".equals(Parser.name[Parser.non_terminal_index[Parser.lhs[i]]])) //$NON-NLS-1$
+ PermittedTypesRule = i;
else
if ("SwitchLabelCaseLhs".equals(Parser.name[Parser.non_terminal_index[Parser.lhs[i]]])) //$NON-NLS-1$
SwitchLabelCaseLhsRule = i;
@@ -4676,13 +4674,10 @@ private static class Goal {
if ("Pattern".equals(Parser.name[Parser.non_terminal_index[Parser.lhs[i]]])) //$NON-NLS-1$
patternStates.add(i);
else
- if ("ParenthesizedPattern".equals(Parser.name[Parser.non_terminal_index[Parser.lhs[i]]])) //$NON-NLS-1$
- patternStates.add(i);
- else
if ("RecordPattern".equals(Parser.name[Parser.non_terminal_index[Parser.lhs[i]]])) //$NON-NLS-1$
patternStates.add(i);
}
- RestrictedIdentifierSealedRule = ridSealed.stream().mapToInt(Integer :: intValue).toArray(); // overkill but future-proof
+ ModifiersoptRules = modifiersOptStates.stream().mapToInt(Integer :: intValue).toArray(); // overkill but future-proof
PatternRules = patternStates.stream().mapToInt(Integer :: intValue).toArray();
LambdaParameterListGoal = new Goal(TokenNameARROW, new int[] { TokenNameARROW }, LambdaParameterListRule);
@@ -4692,7 +4687,8 @@ private static class Goal {
BlockStatementoptGoal = new Goal(TokenNameLBRACE, new int [0], BlockStatementoptRule);
YieldStatementGoal = new Goal(TokenNameARROW, new int [0], YieldStatementRule);
SwitchLabelCaseLhsGoal = new Goal(TokenNameARROW, new int [0], SwitchLabelCaseLhsRule);
- RestrictedIdentifierSealedGoal = new Goal(TokenNameRestrictedIdentifiersealed, RestrictedIdentifierSealedFollow, RestrictedIdentifierSealedRule);
+ SealedModifierGoal = new Goal(TokenNameRestrictedIdentifiersealed, SealedModifierFollow, ModifiersoptRules);
+ PermittedTypesGoal = new Goal(TokenNameRestrictedIdentifierpermits, PermittedTypesFollow, PermittedTypesRule);
PatternGoal = new Goal(TokenNameBeginCaseElement, PatternCaseLabelFollow, PatternRules);
}
@@ -4952,7 +4948,7 @@ protected final boolean maybeAtReferenceExpression() { // Did the '<' we saw jus
case TokenNamesuper: // ? super Context
case TokenNameAND: // T extends Object & Comparable super T>
case TokenNameimplements: // class A implements I
- case TokenNamepermits: // class A permits I
+ case TokenNameRestrictedIdentifierpermits: // class A permits I
case TokenNamethrows: // throws Y
case TokenNameAT: // @Deprecated void foo() {}
case TokenNameinstanceof: // if (o instanceof List[])
@@ -4978,7 +4974,7 @@ private final boolean maybeAtEllipsisAnnotationsStart() { // Did the '@' we saw
case TokenNameextends:
case TokenNamesuper:
case TokenNameimplements:
- case TokenNamepermits:
+ case TokenNameRestrictedIdentifierpermits:
case TokenNameDOT:
case TokenNameLBRACE:
case TokenNameinstanceof:
@@ -5040,17 +5036,6 @@ private boolean mayBeAtAnYieldStatement() {
return false;
}
}
-private boolean mayBeAtASealedRestricedIdentifier(int restrictedIdentifier) {
- if (isInModuleDeclaration())
- return false;
- switch (restrictedIdentifier) {
- case TokenNameRestrictedIdentifiersealed:
- break;
- case TokenNamepermits:
- break;
- }
- return true;
-}
int disambiguatedRestrictedIdentifierrecord(int restrictedIdentifierToken) {
// and here's the kludge
if (restrictedIdentifierToken != TokenNameRestrictedIdentifierrecord)
@@ -5182,13 +5167,6 @@ private boolean disambiguateYieldWithLookAhead() {
}
return false; // IIE event;
}
-int disambiguatedRestrictedIdentifiersealed(int restrictedIdentifierToken) {
- if (!JavaFeature.RECORDS.isSupported(this.complianceLevel, this.previewEnabled))
- return TokenNameIdentifier;
-
- return disambiguatesRestrictedIdentifierWithLookAhead(this::mayBeAtASealedRestricedIdentifier,
- restrictedIdentifierToken, Goal.RestrictedIdentifierSealedGoal);
-}
int disambiguatedRestrictedIdentifierWhen(int restrictedIdentifierToken) {
// and here's the kludge
if (restrictedIdentifierToken != TokenNameRestrictedIdentifierWhen)
@@ -5243,14 +5221,34 @@ int disambiguatedRestrictedKeyword(int restrictedKeywordToken) {
}
return token;
}
-int disambiguatesRestrictedIdentifierWithLookAhead(Predicate checkPrecondition, int restrictedIdentifierToken, Goal goal) {
- if (checkPrecondition.test(restrictedIdentifierToken)) {
- VanguardParser vp = getNewVanguardParser();
- VanguardScanner vs = (VanguardScanner) vp.scanner;
- vs.resetTo(this.currentPosition, this.eofPosition - 1);
- if (vp.parse(goal) == VanguardParser.SUCCESS)
- return restrictedIdentifierToken;
+// TODO: Centralize all non-module contextual keyword recognition here. ATM, we handle sealed type related tokens.
+int disambiguatesRestrictedIdentifierWithLookAhead(int restrictedIdentifierToken) {
+ if (isInModuleDeclaration())
+ return TokenNameIdentifier;
+
+ Goal goal;
+ switch (restrictedIdentifierToken) {
+ case TokenNameRestrictedIdentifiersealed:
+ case TokenNamenon_sealed:
+ if (this.sourceLevel < ClassFileConstants.JDK17)
+ return TokenNameIdentifier;
+ goal = Goal.SealedModifierGoal;
+ break;
+ case TokenNameRestrictedIdentifierpermits:
+ if (this.sourceLevel < ClassFileConstants.JDK17)
+ return TokenNameIdentifier;
+ goal = Goal.PermittedTypesGoal;
+ break;
+ default:
+ throw new UnsupportedOperationException("Unhandled contextual keyword"); //$NON-NLS-1$
}
+
+ VanguardParser vp = getNewVanguardParser();
+ VanguardScanner vs = (VanguardScanner) vp.scanner;
+ vs.resetTo(this.currentPosition, this.eofPosition - 1);
+ if (vp.parse(goal) == VanguardParser.SUCCESS)
+ return restrictedIdentifierToken;
+
return TokenNameIdentifier;
}
@@ -5267,12 +5265,6 @@ private VanguardParser getNewVanguardParser(char[] src) {
return vp;
}
int disambiguatedToken(int token, Scanner scanner) {
- if (token == TokenNamepermits) {
- if (scanner.sourceLevel < ClassFileConstants.JDK17)
- return TokenNameIdentifier;
- return scanner.activeParser == null || !scanner.activeParser.automatonWillShift(TokenNamepermits) ?
- TokenNameIdentifier : TokenNamepermits;
- }
final VanguardParser parser = getVanguardParser();
parser.scanner.caseStartPosition = this.caseStartPosition;
if (token == TokenNameARROW && mayBeAtCaseLabelExpr() && scanner.caseStartPosition < scanner.startPosition) {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/TerminalTokens.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/TerminalTokens.java
index 873c26e3c6..8ad60c546b 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/TerminalTokens.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/TerminalTokens.java
@@ -41,7 +41,7 @@ public interface TerminalTokens {
static boolean isRestrictedKeyword(int tokenType) {
return switch (tokenType) {
case TokenNameRestrictedIdentifierYield, TokenNameRestrictedIdentifierrecord,TokenNameRestrictedIdentifierWhen,
- TokenNameRestrictedIdentifiersealed, TokenNamepermits -> true;
+ TokenNameRestrictedIdentifiersealed, TokenNameRestrictedIdentifierpermits -> true;
default -> false;
};
}
@@ -65,7 +65,7 @@ static int getRestrictedKeyword(String text) {
case "record" -> TokenNameRestrictedIdentifierrecord; //$NON-NLS-1$
case "when" -> TokenNameRestrictedIdentifierWhen; //$NON-NLS-1$
case "sealed" -> TokenNameRestrictedIdentifiersealed; //$NON-NLS-1$
- case "permits" -> TokenNamepermits; //$NON-NLS-1$
+ case "permits" -> TokenNameRestrictedIdentifierpermits; //$NON-NLS-1$
default -> TokenNameNotAToken;
};
}
@@ -96,7 +96,7 @@ static int getRestrictedKeyword(String text) {
TokenNamefor = 86,
TokenNamegoto = 139,
TokenNameif = 87,
- TokenNameimplements = 134,
+ TokenNameimplements = 135,
TokenNameimport = 112,
TokenNameinstanceof = 16,
TokenNameint = 113,
@@ -107,13 +107,12 @@ static int getRestrictedKeyword(String text) {
TokenNamenon_sealed = 47,
TokenNamenull = 57,
TokenNamepackage = 91,
- TokenNamepermits = 135,
TokenNameprivate = 48,
TokenNameprotected = 49,
TokenNamepublic = 50,
TokenNamereturn = 88,
TokenNameshort = 115,
- TokenNamestatic = 38,
+ TokenNamestatic = 39,
TokenNamestrictfp = 51,
TokenNamesuper = 36,
TokenNameswitch = 65,
@@ -206,9 +205,10 @@ static int getRestrictedKeyword(String text) {
TokenNameRestrictedIdentifierYield = 81,
TokenNameRestrictedIdentifierrecord = 76,
TokenNameRestrictedIdentifiersealed = 43,
- TokenNameBeginCaseElement = 132,
- TokenNameRestrictedIdentifierWhen = 133,
+ TokenNameRestrictedIdentifierpermits = 132,
+ TokenNameBeginCaseElement = 133,
+ TokenNameRestrictedIdentifierWhen = 134,
TokenNameUNDERSCORE = 34,
- TokenNameEOF = 39,
+ TokenNameEOF = 38,
TokenNameERROR = 140;
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser1.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser1.rsc
index 488e5c49da..e0520a21e6 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser1.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser1.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser12.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser12.rsc
index dcf2b956bd..16ba8b1ec0 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser12.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser12.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser13.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser13.rsc
index ab94afa65d..fec07da768 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser13.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser13.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser14.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser14.rsc
index 29be4c19d8..66a5fc9329 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser14.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser14.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser15.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser15.rsc
index ba06fabfd5..4d558e975f 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser15.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser15.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser16.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser16.rsc
index cf8793484e..03024b8184 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser16.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser16.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser17.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser17.rsc
index b40ed9f6e7..1a38c6777b 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser17.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser17.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser18.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser18.rsc
index f87356dff8..654483f000 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser18.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser18.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser2.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser2.rsc
index 501e8ea6c5..5b78521516 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser2.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser2.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser20.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser20.rsc
index ddeaf7ba4f..f652854a56 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser20.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser20.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser21.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser21.rsc
index 9ea8f63a37..0f81c43b68 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser21.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser21.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser22.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser22.rsc
index 9363097375..64c2e4f8f2 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser22.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser22.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser24.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser24.rsc
index 1ed4446783..5897198c95 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser24.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser24.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser3.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser3.rsc
index 1d20469b86..f6ce29f91c 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser3.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser3.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser4.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser4.rsc
index 43f347c76c..dd0fd2c966 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser4.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser4.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser5.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser5.rsc
index e8471dc994..b6499b694c 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser5.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser5.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser6.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser6.rsc
index 7e6d464e5e..b12275a7b1 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser6.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser6.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser7.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser7.rsc
index 8d410cb4a2..b8fd6abcf7 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser7.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser7.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser8.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser8.rsc
index 94f3142dc6..a4e5feec4c 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser8.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser8.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser9.rsc b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser9.rsc
index 290ebcc6f4..eef061fe43 100644
Binary files a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser9.rsc and b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/parser9.rsc differ
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/readableNames.props b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/readableNames.props
index 6f22bbbaec..d560d0b0da 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/readableNames.props
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/parser/readableNames.props
@@ -250,7 +250,8 @@ PackageDeclarationName=PackageDeclarationName
ParenthesizedCastNameAndBounds=ParenthesizedCastNameAndBounds
ParenthesizedLambdaParameterList=ParenthesizedLambdaParameterList
Pattern=Pattern
-PermittedTypesopt=PermittedTypes
+PermittedTypes=PermittedTypes
+PermittedTypesopt=PermittedTypesopt
PostDecrementExpression=PostDecrementExpression
PostIncrementExpression=PostIncrementExpression
PostfixExpression=Expression
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
index 8bcb357407..8f94e52492 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
@@ -915,6 +915,16 @@ public void abortDueToPreviewEnablingNotAllowed(String sourceLevel, String expec
0,
0);
}
+public void abortDueToNotSupportedJavaVersion(String notSupportedVersion, String firstSupportedVersion) {
+ String[] args = new String[] {notSupportedVersion, firstSupportedVersion};
+ this.handle(
+ IProblem.JavaVersionNotSupported,
+ args,
+ args,
+ ProblemSeverities.Error | ProblemSeverities.Abort | ProblemSeverities.Fatal,
+ 0,
+ 0);
+}
public void abstractMethodCannotBeOverridden(SourceTypeBinding type, MethodBinding concreteMethod) {
this.handle(
@@ -1359,7 +1369,6 @@ public void operandStackSizeInappropriate(ASTNode location) {
ProblemSeverities.Warning,
location.sourceStart,
location.sourceEnd);
- throw new AssertionError("Anomalous/Inconsistent operand stack!"); //$NON-NLS-1$
}
public void bytecodeExceeds64KLimit(LambdaExpression location) {
bytecodeExceeds64KLimit(location.binding, location.sourceStart, location.diagnosticsSourceEnd());
@@ -4206,6 +4215,10 @@ public void invalidConstructor(Statement statement, MethodBinding targetConstruc
problemConstructor = (ProblemMethodBinding) targetConstructor;
contradictoryNullAnnotationsInferred(problemConstructor.closestMatch, statement);
return;
+ case ProblemReasons.MissingTypeInSignature:
+ problemConstructor = (ProblemMethodBinding) targetConstructor;
+ missingTypeInConstructor(statement, problemConstructor.closestMatch);
+ return;
case ProblemReasons.NoError : // 0
default :
needImplementation(statement); // want to fail to see why we were here...
@@ -4835,6 +4848,10 @@ public void invalidMethod(MessageSend messageSend, MethodBinding method, Scope s
problemMethod = (ProblemMethodBinding) method;
contradictoryNullAnnotationsInferred(problemMethod.closestMatch, messageSend);
return;
+ case ProblemReasons.MissingTypeInSignature:
+ problemMethod = (ProblemMethodBinding) method;
+ missingTypeInMethod(messageSend, problemMethod.closestMatch);
+ return;
case ProblemReasons.NoError : // 0
default :
needImplementation(messageSend); // want to fail to see why we were here...
@@ -5271,7 +5288,7 @@ private boolean isRestrictedIdentifier(int token) {
case TerminalTokens.TokenNameRestrictedIdentifierYield:
case TerminalTokens.TokenNameRestrictedIdentifierrecord:
case TerminalTokens.TokenNameRestrictedIdentifiersealed:
- case TerminalTokens.TokenNamepermits:
+ case TerminalTokens.TokenNameRestrictedIdentifierpermits:
case TerminalTokens.TokenNameRestrictedIdentifierWhen:
return true;
default: return false;
@@ -5334,7 +5351,7 @@ private boolean isKeyword(int token) {
case TerminalTokens.TokenNameRestrictedIdentifierYield:
case TerminalTokens.TokenNameRestrictedIdentifierrecord:
case TerminalTokens.TokenNameRestrictedIdentifiersealed:
- case TerminalTokens.TokenNamepermits:
+ case TerminalTokens.TokenNameRestrictedIdentifierpermits:
case TerminalTokens.TokenNameRestrictedIdentifierWhen:
// making explicit - not a (restricted) keyword but restricted identifier.
//$FALL-THROUGH$
@@ -7009,7 +7026,7 @@ public void missingSynchronizedOnInheritedMethod(MethodBinding currentMethod, Me
currentMethod.sourceEnd());
}
public void missingTypeInConstructor(ASTNode location, MethodBinding constructor) {
- List missingTypes = constructor.collectMissingTypes(null);
+ List missingTypes = constructor.collectMissingTypes(null, true);
if (missingTypes == null) {
System.err.println("The constructor " + constructor + " is wrongly tagged as containing missing types"); //$NON-NLS-1$ //$NON-NLS-2$
return;
@@ -7042,7 +7059,7 @@ public void missingTypeInConstructor(ASTNode location, MethodBinding constructor
public void missingTypeInLambda(LambdaExpression lambda, MethodBinding method) {
int nameSourceStart = lambda.sourceStart();
int nameSourceEnd = lambda.diagnosticsSourceEnd();
- List missingTypes = method.collectMissingTypes(null);
+ List missingTypes = method.collectMissingTypes(null, true);
if (missingTypes == null) {
System.err.println("The lambda expression " + method + " is wrongly tagged as containing missing types"); //$NON-NLS-1$ //$NON-NLS-2$
return;
@@ -7069,7 +7086,7 @@ public void missingTypeInMethod(ASTNode astNode, MethodBinding method) {
nameSourceStart = astNode.sourceStart;
nameSourceEnd = astNode.sourceEnd;
}
- List missingTypes = method.collectMissingTypes(null);
+ List missingTypes = method.collectMissingTypes(null, true);
if (missingTypes == null) {
System.err.println("The method " + method + " is wrongly tagged as containing missing types"); //$NON-NLS-1$ //$NON-NLS-2$
return;
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/problem/messages.properties b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/problem/messages.properties
index 11ec07df00..2d7c5b4160 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/problem/messages.properties
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/problem/messages.properties
@@ -905,6 +905,7 @@
1106 = Preview features enabled at an invalid source release level {0}, preview can be enabled only at source level {1}
1107 = The Java feature ''{0}'' is only available with source level {1} and above
1108 = You are using an API that is part of a preview feature and may be removed in future
+1109 = Compiling for Java version ''{0}'' is no longer supported. Minimal supported version is ''{1}''
# more programming problems:
1200 = Unlikely argument type {0} for {1} on a {2}
1201 = Unlikely argument type for equals(): {0} seems to be unrelated to {2}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompiler.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompiler.java
index aeeede4718..c6c4c40f32 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompiler.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompiler.java
@@ -248,4 +248,9 @@ public int run(InputStream in, OutputStream out, OutputStream err, String... arg
null/* progress */).compile(arguments);
return succeed ? 0 : -1;
}
+
+ @Override
+ public String name() {
+ return "ecj"; //$NON-NLS-1$
+ }
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/tool/EclipseFileManager.java b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/tool/EclipseFileManager.java
index f5f8f43989..765dbb9825 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/tool/EclipseFileManager.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.compiler.batch/src/org/eclipse/jdt/internal/compiler/tool/EclipseFileManager.java
@@ -811,6 +811,7 @@ public boolean handleOption(String current, Iterator remaining) {
}
case "-extdirs": //$NON-NLS-1$
if (this.isOnJvm9) {
+ // XXX this should check -target == 8, not the running JVM version!
throw new IllegalArgumentException();
}
if (remaining.hasNext()) {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/AbstractMethodTests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/AbstractMethodTests.java
index 2610aa75d8..8b9ae5ba9c 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/AbstractMethodTests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/AbstractMethodTests.java
@@ -25,7 +25,6 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IRegion;
@@ -37,6 +36,7 @@
import org.eclipse.jdt.core.tests.util.Util;
import org.eclipse.jdt.core.util.IClassFileReader;
import org.eclipse.jdt.core.util.IMethodInfo;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
@SuppressWarnings({"rawtypes", "unchecked"})
public class AbstractMethodTests extends BuilderTests {
@@ -163,7 +163,7 @@ public void test002() throws JavaModelException {
//----------------------------
IPath project1Path = env.addProject("Project1"); //$NON-NLS-1$
env.addExternalJars(project1Path, Util.getJavaClassLibs());
- env.getJavaProject(project1Path).setOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_1); // need default abstract method
+ env.getJavaProject(project1Path).setOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, CompilerOptions.getFirstSupportedJavaVersion()); // need default abstract method
// remove old package fragment root so that names don't collide
env.removePackageFragmentRoot(project1Path, ""); //$NON-NLS-1$
@@ -241,7 +241,7 @@ public void test002() throws JavaModelException {
/**
* Check behavior in 1.1 target mode (generated default abstract method)
*/
- public void test003() throws JavaModelException {
+ public void test003() throws Exception {
//----------------------------
// Step 1
//----------------------------
@@ -250,7 +250,7 @@ public void test003() throws JavaModelException {
//----------------------------
IPath project1Path = env.addProject("Project1"); //$NON-NLS-1$
env.addExternalJars(project1Path, Util.getJavaClassLibs());
- env.getJavaProject(project1Path).setOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_1); // need default abstract method
+ env.getJavaProject(project1Path).setOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, CompilerOptions.getFirstSupportedJavaVersion()); // need default abstract method
// remove old package fragment root so that names don't collide
env.removePackageFragmentRoot(project1Path, ""); //$NON-NLS-1$
@@ -292,8 +292,6 @@ public void test003() throws JavaModelException {
try {
stream = classFile.getContents();
classFileReader = ToolFactory.createDefaultClassFileReader(stream, IClassFileReader.ALL);
- } catch (CoreException e) {
- e.printStackTrace();
} finally {
if (stream != null) {
try {
@@ -313,8 +311,7 @@ public void test003() throws JavaModelException {
break loop;
}
}
- assertNotNull("No method found", found);
- assertTrue("Not a synthetic method", found.isSynthetic());
+ assertNull("Should not find a 'foo' method", found);
}
private String getResourceOuput(IResource[] resources) {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/AnnotationDependencyTests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/AnnotationDependencyTests.java
index 00d77894b7..83fb8ea450 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/AnnotationDependencyTests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/AnnotationDependencyTests.java
@@ -31,6 +31,7 @@
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.compiler.CategorizedProblem;
import org.eclipse.jdt.core.tests.util.Util;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import org.osgi.framework.Bundle;
/**
@@ -52,7 +53,7 @@ public static Test suite() {
public void setUp() throws Exception {
super.setUp();
- this.projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$
+ this.projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(this.projectPath, Util.getJavaClassLibs());
// remove old package fragment root so that names don't collide
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BasicBuildTests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BasicBuildTests.java
index 4763658af8..031337dc67 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BasicBuildTests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BasicBuildTests.java
@@ -58,6 +58,7 @@
import org.eclipse.jdt.core.tests.util.Util;
import org.eclipse.jdt.internal.compiler.Compiler;
import org.eclipse.jdt.internal.compiler.CompilerConfiguration;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import org.eclipse.jdt.internal.core.JavaModelManager;
import org.eclipse.jdt.internal.core.builder.AbstractImageBuilder;
import org.osgi.framework.Bundle;
@@ -646,7 +647,7 @@ public void testbBug386901() throws JavaModelException {
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=425420
public void testBug425420() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
// don't env.addExternalJars(projectPath, Util.getJavaClassLibs());
// remove old package fragment root so that names don't collide
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/Bug549457Test.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/Bug549457Test.java
index b54e0531d3..2f3b1c1e7a 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/Bug549457Test.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/Bug549457Test.java
@@ -49,7 +49,7 @@ public static Test suite() {
protected void setUp() throws Exception {
super.setUp();
- this.project = env.addProject("Bug549457Test");
+ this.project = env.addProject("Bug549457Test", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(this.project, Util.getJavaClassLibs());
env.removePackageFragmentRoot(this.project, "");
@@ -78,17 +78,23 @@ public void testBug549457() throws Exception {
IFolder srcPackageFolder = env.getWorkspace().getRoot().getFolder(this.srcPackage);
assertTrue("package in source must exist", srcPackageFolder.exists());
- env.addClass(this.src, "p", "X", "package p;\n public interface X { default void foo() { /* cause an error with Java 7 */ } }");
+ env.addClass(this.src, "p", "A", "package p;\n sealed class A permits B {}; final class B extends A {}");
fullBuild(this.project);
- // For this test, the default is not Java 8. If this changes, we can expect no problems here. The test cares only that the source was compiled.
- expectCompileProblem(this.project, "Default methods are allowed only at source level 1.8 or above");
+ // For this test, the default is not Java 17. If this changes, we can expect no problems here. The test cares only that the source was compiled.
+ String firstSupportedJavaVersion = CompilerOptions.getFirstSupportedJavaVersion();
+ String expectedProblemMessage = "'permits' is not a valid type name; it is a restricted identifier and not allowed as a type identifier in Java "
+ + firstSupportedJavaVersion + ","
+ + " Syntax error on token \"permits\", extends expected,"
+ + " Syntax error on token \"sealed\", invalid Modifiers";
+ expectCompileProblem(this.project, expectedProblemMessage);
IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
IProject testProject = workspaceRoot.getProject("Bug549457Test");
IJavaProject javaProject = JavaCore.create(testProject);
- javaProject.setOption(CompilerOptions.OPTION_Compliance, "1.8");
- javaProject.setOption(CompilerOptions.OPTION_Source, "1.8");
+ javaProject.setOption(CompilerOptions.OPTION_Compliance, CompilerOptions.getLatestVersion());
+ javaProject.setOption(CompilerOptions.OPTION_Source, CompilerOptions.getLatestVersion());
+ javaProject.setOption(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getLatestVersion());
testProject.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
waitForAutoBuild();
fullBuild(this.project);
@@ -96,15 +102,16 @@ public void testBug549457() throws Exception {
String jdtCorePreferencesFile = JavaProject.DEFAULT_PREFERENCES_DIRNAME + IPath.SEPARATOR + JavaProject.JAVA_CORE_PREFS_FILE;
IFile settingsFile = testProject.getFile(jdtCorePreferencesFile);
- assertTrue("expected \"" + jdtCorePreferencesFile + "\" to exist after setting compiler compliance to Java 1.7", settingsFile.exists());
+ assertTrue("expected \"" + jdtCorePreferencesFile + "\" to exist after setting compiler compliance to Java " + firstSupportedJavaVersion, settingsFile.exists());
String newContents = String.join(
- CompilerOptions.OPTION_Compliance + "=1.7",
- CompilerOptions.OPTION_Source + "=1.7");
+ CompilerOptions.OPTION_Compliance + "=" + firstSupportedJavaVersion + "\n",
+ CompilerOptions.OPTION_Source + "=" + firstSupportedJavaVersion + "\n",
+ CompilerOptions.OPTION_TargetPlatform + "=" + firstSupportedJavaVersion + "\n");
settingsFile.setContents(newContents.getBytes(), IResource.FORCE, new NullProgressMonitor());
waitForAutoBuild();
- expectCompileProblem(this.project, "Default methods are allowed only at source level 1.8 or above");
+ expectCompileProblem(this.project, expectedProblemMessage);
}
private void waitForAutoBuild() throws InterruptedException {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuilderTests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuilderTests.java
index eceb87cca6..4bd8a4c557 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuilderTests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuilderTests.java
@@ -35,6 +35,7 @@
import org.eclipse.jdt.core.tests.util.TestVerifier;
import org.eclipse.jdt.core.tests.util.Util;
import org.eclipse.jdt.internal.compiler.Compiler;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -546,17 +547,13 @@ private static Class[] getAllTestClasses() {
Bug561287Test.class,
Bug562420Test.class,
LeakTestsBefore9.class,
+ Java50Tests.class,
+ PackageInfoTest.class,
+ ParticipantBuildTests.class,
+ AnnotationDependencyTests.class,
+ Bug544921Test.class
};
List> list = new ArrayList<>(Arrays.asList(classes));
- if (matchesCompliance(F_1_5)) {
- list.add(Java50Tests.class);
- list.add(PackageInfoTest.class);
- list.add(ParticipantBuildTests.class);
- list.add(AnnotationDependencyTests.class);
- }
- if (matchesCompliance(F_1_8)) {
- list.add(Bug544921Test.class);
- }
if (matchesCompliance(F_9)) {
list.add(LeakTestsAfter9.class);
list.add(Bug549646Test.class);
@@ -628,7 +625,7 @@ public static Test suite() {
static IPath addEmptyInternalJar(IPath projectPath, String jarName) throws IOException, JavaModelException {
IProject project = env.getProject(projectPath);
String jarFile = project.getLocation().append(jarName).toOSString();
- Util.createEmptyJar(jarFile, JavaCore.VERSION_1_4);
+ Util.createEmptyJar(jarFile, CompilerOptions.getFirstSupportedJavaVersion());
IPath jarPath = null;
try (FileInputStream fis = new FileInputStream(jarFile)) {
int length = fis.available();
@@ -650,7 +647,7 @@ protected static void expectCompileProblem(IPath project, String expectedProblem
List expectedProblemMessages = Arrays.asList(expectedProblemMessage);
assertEquals("expected compile problem not observed",
- expectedProblemMessages, actualProblemMessages);
+ expectedProblemMessages.toString(), actualProblemMessages.toString());
}
protected static void expectNoCompileProblems(IPath project) {
@@ -664,6 +661,6 @@ protected static void expectNoCompileProblems(IPath project) {
List expectedProblemMessages = Collections.EMPTY_LIST;
assertEquals("expected no compile problems",
- expectedProblemMessages, actualProblemMessages);
+ expectedProblemMessages.toString(), actualProblemMessages.toString());
}
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuilderTests11.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuilderTests11.java
index a72ba5afa0..3586462d05 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuilderTests11.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuilderTests11.java
@@ -40,16 +40,6 @@ public void testBuildWithRelease_1_8() throws JavaModelException, Exception {
runTest(compliance);
}
- public void testBuildWithRelease_1_7() throws JavaModelException, Exception {
- String compliance = "1.7";
- runTest(compliance);
- }
-
- public void testBuildWithRelease_1_6() throws JavaModelException, Exception {
- String compliance = "1.6";
- runTest(compliance);
- }
-
// TODO: this test fails in 4.25 M1, probably also before.
// Cannot find the class file for java.lang.Object
public void XtestBuilderWithRelease_9() throws JavaModelException, Exception {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuildpathTests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuildpathTests.java
index e5192c4782..69fcced568 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuildpathTests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/BuildpathTests.java
@@ -34,7 +34,6 @@
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.compiler.CategorizedProblem;
-import org.eclipse.jdt.core.tests.util.AbstractCompilerTest;
import org.eclipse.jdt.core.tests.util.Util;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import org.eclipse.jdt.internal.core.JavaModel;
@@ -368,7 +367,7 @@ public void testChangeZIPArchive1() throws Exception {
"}"
},
externalLib,
- "1.4");
+ CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.addExternalJars(projectPath, new String[] {externalLib});
@@ -396,7 +395,7 @@ public void testChangeZIPArchive1() throws Exception {
"}"
},
externalLib,
- "1.4");
+ CompilerOptions.getFirstSupportedJavaVersion());
IJavaProject p = env.getJavaProject(projectPath);
p.getJavaModel().refreshExternalArchives(new IJavaElement[] {p}, null);
@@ -429,7 +428,7 @@ public void testChangeZIPArchive2() throws Exception {
"}"
},
internalLib,
- "1.4");
+ CompilerOptions.getFirstSupportedJavaVersion());
env.getProject(projectPath).refreshLocal(IResource.DEPTH_INFINITE, null);
env.addEntry(projectPath, JavaCore.newLibraryEntry(new Path("/Project/internalLib.abc"), null, null));
@@ -461,7 +460,7 @@ public void testChangeZIPArchive2() throws Exception {
"}"
},
internalLib,
- "1.4");
+ CompilerOptions.getFirstSupportedJavaVersion());
env.getProject(projectPath).refreshLocal(IResource.DEPTH_INFINITE, null);
@@ -995,11 +994,7 @@ public void testMissingOptionalProject() throws JavaModelException {
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=160132
public void test0100() throws JavaModelException {
- if (!AbstractCompilerTest.isJRELevel(AbstractCompilerTest.F_1_5)) {
- // expected to run only in 1.5 mode on top of a jre 1.5 or above
- return;
- }
- IPath projectPath = env.addProject("P", "1.5");
+ IPath projectPath = env.addProject("P", CompilerOptions.getFirstSupportedJavaVersion());
IPath defaultPackagePath = env.addPackage(projectPath, "");
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.addClass(defaultPackagePath, "X",
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/DependencyTests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/DependencyTests.java
index 8c5354ee83..1afd8bec1f 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/DependencyTests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/DependencyTests.java
@@ -20,11 +20,14 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.compiler.CategorizedProblem;
-import org.eclipse.jdt.core.tests.util.AbstractCompilerTest;
import org.eclipse.jdt.core.tests.util.Util;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
@SuppressWarnings({"rawtypes", "unchecked"})
public class DependencyTests extends BuilderTests {
+ static {
+// TESTS_NAMES = new String[] {"testMissingClassFile"};
+ }
public DependencyTests(String name) {
super(name);
}
@@ -857,7 +860,7 @@ public void testMethodVisibility() throws JavaModelException {
}
public void testMissingClassFile() throws JavaModelException {
- IPath project1Path = env.addProject("Project1"); //$NON-NLS-1$
+ IPath project1Path = env.addProject("Project1", "1.8"); // tolerance of missing types not fully implemented below 1.8
env.addExternalJars(project1Path, Util.getJavaClassLibs());
// remove old package fragment root so that names don't collide
@@ -871,7 +874,7 @@ public void testMissingClassFile() throws JavaModelException {
"public class MissingClass {}" //$NON-NLS-1$
);
- IPath project2Path = env.addProject("Project2"); //$NON-NLS-1$
+ IPath project2Path = env.addProject("Project2", "1.8"); // tolerance of missing types not fully implemented below 1.8
env.addExternalJars(project2Path, Util.getJavaClassLibs());
env.addRequiredProject(project2Path, project1Path);
@@ -890,7 +893,7 @@ public void testMissingClassFile() throws JavaModelException {
"}\n" //$NON-NLS-1$
);
- IPath project3Path = env.addProject("Project3"); //$NON-NLS-1$
+ IPath project3Path = env.addProject("Project3", "1.8"); // tolerance of missing types not fully implemented below 1.8
env.addExternalJars(project3Path, Util.getJavaClassLibs());
env.addRequiredProject(project3Path, project2Path);
// missing required Project1 so MissingClass cannot be found
@@ -906,19 +909,20 @@ public void testMissingClassFile() throws JavaModelException {
"import p2.A;\n" +
"public class B {\n"+ //$NON-NLS-1$
" public static void main(String[] args) {\n" + //$NON-NLS-1$
- " new A().foo(new String());\n" + //$NON-NLS-1$
+ " new A().foo(new B());\n" + // applicability test would like to see MissingClass
+ " new A().foo(new String());\n" + // exact match to fully resolved method
" }\n" + //$NON-NLS-1$
"}\n" //$NON-NLS-1$
);
fullBuild();
- expectingOnlyProblemsFor(new IPath[] {project3Path, bPath});
- expectingSpecificProblemFor(project3Path, new Problem("Project3", "The project was not built since its build path is incomplete. Cannot find the class file for p1.MissingClass. Fix the build path then try building this project", project3Path, -1, -1, CategorizedProblem.CAT_BUILDPATH, IMarker.SEVERITY_ERROR)); //$NON-NLS-1$ //$NON-NLS-2$
- expectingSpecificProblemFor(bPath, new Problem("B", "The type p1.MissingClass cannot be resolved. It is indirectly referenced from required type p2.A", bPath, 86, 111, CategorizedProblem.CAT_BUILDPATH, IMarker.SEVERITY_ERROR)); //$NON-NLS-1$ //$NON-NLS-2$
+ expectingOnlyProblemsFor(new IPath[] {bPath});
+ expectingSpecificProblemFor(bPath, new Problem("B", "The method foo(MissingClass) from the type A refers to the missing type MissingClass", bPath, 94, 97, CategorizedProblem.CAT_MEMBER, IMarker.SEVERITY_ERROR)); //$NON-NLS-1$ //$NON-NLS-2$
env.addClass(root2, "p2", "A", //$NON-NLS-1$ //$NON-NLS-2$
"package p2;\n"+ //$NON-NLS-1$
"public class A {\n"+ //$NON-NLS-1$
+ " public void foo(Object data) {}\n"+ //$NON-NLS-1$
" public void foo(String data) {}\n"+ //$NON-NLS-1$
"}\n" //$NON-NLS-1$
);
@@ -1145,9 +1149,7 @@ public void testTypeVisibility2() throws JavaModelException {
}
public void testTypeVariable() throws JavaModelException {
- if ((AbstractCompilerTest.getPossibleComplianceLevels() & AbstractCompilerTest.F_1_5) == 0) return;
-
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
// remove old package fragment root so that names don't collide
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/GetResourcesTests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/GetResourcesTests.java
index 9ddf18f728..4d96d4921c 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/GetResourcesTests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/GetResourcesTests.java
@@ -385,176 +385,8 @@ public void test005() throws JavaModelException {
"/Project/bin/a/Anon$6.class\n" +
"/Project/bin/a/Anon$7.class\n" +
"/Project/bin/a/Anon$8.class\n" +
- "/Project/bin/a/Anon$9.class\n" +
- "/Project/bin/a/Anon$10.class\n" +
- "/Project/bin/a/Anon$11.class\n" +
- "/Project/bin/a/Anon$12.class\n" +
- "/Project/bin/a/Anon$13.class\n" +
- "/Project/bin/a/Anon$14.class\n" +
- "/Project/bin/a/Anon$15.class\n" +
- "/Project/bin/a/Anon$16.class\n" +
- "/Project/bin/a/Anon$Anon2.class\n";
- assertEquals("Wrong names", Util.convertToIndependantLineDelimiter(expectedOutput), actualOutput);
- env.removeProject(projectPath);
- }
-
- //https://bugs.eclipse.org/bugs/show_bug.cgi?id=6584
- public void test006() throws JavaModelException {
- IPath projectPath = null;
- try {
- projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$
- } catch (RuntimeException e) {
- // no 1.5 VM or above is available
- return;
- }
- env.addExternalJars(projectPath, Util.getJavaClassLibs());
- fullBuild(projectPath);
-
- // remove old package fragment root so that names don't collide
- env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
-
- IPath root = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
- env.setOutputFolder(projectPath, "bin"); //$NON-NLS-1$
-
- env.addClass(root, "a", "Anon", //$NON-NLS-1$ //$NON-NLS-2$
- "package a;\n" +
- "\n" +
- "public class Anon {\n" +
- "\n" +
- " Anon() {\n" +
- " Object o1 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"1\"; // a/Anon$3 in 1.5, a/Anon$11 in 1.4\n" +
- " }\n" +
- " };\n" +
- " Object o2 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"2\"; // a/Anon$4 in 1.5, a/Anon$12 in 1.4\n" +
- " }\n" +
- " };\n" +
- " }\n" +
- "\n" +
- " void hello() {\n" +
- " Object o3 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"3\"; // a/Anon$5 in 1.5, a/Anon$13 in 1.4\n" +
- " }\n" +
- " };\n" +
- " Object o4 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"4\"; // a/Anon$6 in 1.5, a/Anon$14 in 1.4\n" +
- " }\n" +
- " };\n" +
- " }\n" +
- "\n" +
- " static void hello2() {\n" +
- " Object o5 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"5\"; // a/Anon$7 in 1.5, a/Anon$15 in 1.4\n" +
- " }\n" +
- " };\n" +
- " Object o6 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"6\"; // a/Anon$8 in 1.5, a/Anon$16 in 1.4\n" +
- " }\n" +
- " };\n" +
- " }\n" +
- "\n" +
- " static {\n" +
- " Object o7 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"7\"; // a/Anon$1 in 1.5, a/Anon$1 in 1.4\n" +
- " }\n" +
- " };\n" +
- "\n" +
- " Object o8 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"8\"; // a/Anon$2 in 1.5, a/Anon$2 in 1.4\n" +
- " }\n" +
- " };\n" +
- " }\n" +
- "\n" +
- " static class Anon2 {\n" +
- " // it\'s an object init block which has different prio as constructor!\n" +
- " {\n" +
- " Object o1 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"1\"; // a/Anon$Anon2$1 in 1.5, a/Anon$3 in 1.4\n" +
- " }\n" +
- " };\n" +
- " Object o2 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"2\"; // a/Anon$Anon2$2 in 1.5, a/Anon$4 in 1.4\n" +
- " }\n" +
- " };\n" +
- " }\n" +
- "\n" +
- " void hello() {\n" +
- " Object o3 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"3\"; // a/Anon$Anon2$5 in 1.5, a/Anon$7 in 1.4\n" +
- " }\n" +
- " };\n" +
- " Object o4 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"4\"; // a/Anon$Anon2$6 in 1.5, a/Anon$8 in 1.4\n" +
- " }\n" +
- " };\n" +
- " }\n" +
- "\n" +
- " static void hello2() {\n" +
- " Object o5 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"5\"; // a/Anon$Anon2$7 in 1.5, a/Anon$9 in 1.4\n" +
- " }\n" +
- " };\n" +
- " Object o6 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"6\"; // a/Anon$Anon2$8 in 1.5, a/Anon$10 in 1.4\n" +
- " }\n" +
- " };\n" +
- " }\n" +
- "\n" +
- " static {\n" +
- " Object o7 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"7\"; // a/Anon$Anon2$3 in 1.5, a/Anon$5 in 1.4\n" +
- " }\n" +
- " };\n" +
- "\n" +
- " Object o8 = new Object() {\n" +
- " public String toString() {\n" +
- " return \"8\"; // a/Anon$Anon2$4 in 1.5, a/Anon$6 in 1.4\n" +
- " }\n" +
- " };\n" +
- " }\n" +
- " }\n" +
- "}");
-
- incrementalBuild(projectPath);
-
- IJavaProject project = env.getJavaProject(projectPath);
- IPackageFragmentRoot root2 = project.getPackageFragmentRoot(project.getProject().getWorkspace().getRoot().findMember(root.makeAbsolute()));
- IPackageFragment packageFragment = root2.getPackageFragment("a");//$NON-NLS-1$
- ICompilationUnit compilationUnit = packageFragment.getCompilationUnit("Anon.java");//$NON-NLS-1$
- IRegion region = JavaCore.newRegion();
- region.add(compilationUnit);
- IResource[] resources = JavaCore.getGeneratedResources(region, false);
- assertEquals("Wrong size", 18, resources.length);//$NON-NLS-1$
- Arrays.sort(resources, COMPARATOR);
- String actualOutput = getResourceOuput(resources);
- String expectedOutput =
- "/Project/bin/a/Anon.class\n" +
- "/Project/bin/a/Anon$1.class\n" +
- "/Project/bin/a/Anon$2.class\n" +
- "/Project/bin/a/Anon$3.class\n" +
- "/Project/bin/a/Anon$4.class\n" +
- "/Project/bin/a/Anon$5.class\n" +
- "/Project/bin/a/Anon$6.class\n" +
- "/Project/bin/a/Anon$7.class\n" +
- "/Project/bin/a/Anon$8.class\n" +
- "/Project/bin/a/Anon$Anon2.class\n" +
- "/Project/bin/a/Anon$Anon2$1.class\n" +
+ "/Project/bin/a/Anon$Anon2.class\n" +
+ "/Project/bin/a/Anon$Anon2$1.class\n" +
"/Project/bin/a/Anon$Anon2$2.class\n" +
"/Project/bin/a/Anon$Anon2$3.class\n" +
"/Project/bin/a/Anon$Anon2$4.class\n" +
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/IncrementalTests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/IncrementalTests.java
index 6eadea0b05..1e728adad9 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/IncrementalTests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/IncrementalTests.java
@@ -27,6 +27,7 @@
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.compiler.CategorizedProblem;
import org.eclipse.jdt.core.tests.util.Util;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
@SuppressWarnings({"rawtypes", "unchecked"})
public class IncrementalTests extends BuilderTests {
@@ -607,10 +608,10 @@ public void testMemberTypeFromClassFile() throws JavaModelException {
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=372418
public void testMemberTypeOfOtherProject() throws JavaModelException {
- IPath projectPath1 = env.addProject("Project1", "1.5"); //$NON-NLS-1$ //$NON-NLS-2$
+ IPath projectPath1 = env.addProject("Project1", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath1, Util.getJavaClassLibs());
- IPath projectPath2 = env.addProject("Project2", "1.5"); //$NON-NLS-1$ //$NON-NLS-2$
+ IPath projectPath2 = env.addProject("Project2", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath2, Util.getJavaClassLibs());
// remove old package fragment root so that names don't collide
@@ -668,10 +669,10 @@ public void testMemberTypeOfOtherProject() throws JavaModelException {
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=377401
public void test$InTypeName() throws JavaModelException {
- IPath projectPath1 = env.addProject("Project1", "1.5"); //$NON-NLS-1$ //$NON-NLS-2$
+ IPath projectPath1 = env.addProject("Project1", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$ //$NON-NLS-2$
env.addExternalJars(projectPath1, Util.getJavaClassLibs());
- IPath projectPath2 = env.addProject("Project2", "1.5"); //$NON-NLS-1$ //$NON-NLS-2$
+ IPath projectPath2 = env.addProject("Project2", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$ //$NON-NLS-2$
env.addExternalJars(projectPath2, Util.getJavaClassLibs());
// remove old package fragment root so that names don't collide
@@ -1138,9 +1139,9 @@ public void testBug334377() throws JavaModelException {
try {
options = JavaCore.getOptions();
Hashtable newOptions = JavaCore.getOptions();
- newOptions.put(JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_5);
- newOptions.put(JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_5);
- newOptions.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_5);
+ newOptions.put(JavaCore.COMPILER_COMPLIANCE, CompilerOptions.getFirstSupportedJavaVersion());
+ newOptions.put(JavaCore.COMPILER_SOURCE, CompilerOptions.getFirstSupportedJavaVersion());
+ newOptions.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, CompilerOptions.getFirstSupportedJavaVersion());
JavaCore.setOptions(newOptions);
IPath projectPath = env.addProject("Project"); //$NON-NLS-1$
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/Java50Tests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/Java50Tests.java
index ab7de8b929..791b27710c 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/Java50Tests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/Java50Tests.java
@@ -19,6 +19,7 @@
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.compiler.CategorizedProblem;
import org.eclipse.jdt.core.tests.util.Util;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
public class Java50Tests extends BuilderTests {
@@ -31,7 +32,7 @@ public static Test suite() {
}
public void testAnnotation() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.setOutputFolder(projectPath, "");
@@ -66,7 +67,7 @@ public void testAnnotation() throws JavaModelException {
}
public void testHierarchyCycle() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.setOutputFolder(projectPath, "");
@@ -86,7 +87,7 @@ public void testHierarchyCycle() throws JavaModelException {
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=214237, dupe of
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=205235
public void testHierarchyCycleInstanceof() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.setOutputFolder(projectPath, "");
@@ -112,9 +113,9 @@ public void testHierarchyCycleInstanceof() throws JavaModelException {
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=231293
- public void testMissingRequiredBinaries() throws JavaModelException {
+ public void _2551_testMissingRequiredBinaries() throws JavaModelException {
- IPath p1 = env.addProject("P1", "1.5"); //$NON-NLS-1$
+ IPath p1 = env.addProject("P1", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
IPath p2 = env.addProject("P2"); //$NON-NLS-1$
env.addExternalJars(p1, Util.getJavaClassLibs());
@@ -169,7 +170,7 @@ public void testMissingRequiredBinaries() throws JavaModelException {
}
public void testParameterizedMemberType() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.setOutputFolder(projectPath, "");
@@ -234,7 +235,7 @@ public void testParameterizedMemberType() throws JavaModelException {
}
public void testParameterizedType1() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.setOutputFolder(projectPath, "");
@@ -275,7 +276,7 @@ public void testParameterizedType1() throws JavaModelException {
}
public void testParameterizedType2() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.setOutputFolder(projectPath, "");
@@ -316,7 +317,7 @@ public void testParameterizedType2() throws JavaModelException {
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=294057
public void testHierarchyNonCycle() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.setOutputFolder(projectPath, "");
@@ -350,7 +351,7 @@ public void testHierarchyNonCycle() throws JavaModelException {
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=294057 (variation)
public void testHierarchyNonCycle2() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.setOutputFolder(projectPath, "");
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/LeakTestsBefore9.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/LeakTestsBefore9.java
index f3a837f3bd..05dca1ac94 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/LeakTestsBefore9.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/LeakTestsBefore9.java
@@ -28,7 +28,7 @@ public static Test suite() {
}
String getCompatibilityLevel() {
- return CompilerOptions.VERSION_1_4;
+ return CompilerOptions.getFirstSupportedJavaVersion();
}
@Override
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/MultiProjectTests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/MultiProjectTests.java
index 8babfccaca..ff54e8e7e1 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/MultiProjectTests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/MultiProjectTests.java
@@ -25,6 +25,7 @@
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.compiler.CategorizedProblem;
import org.eclipse.jdt.core.tests.util.Util;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import org.eclipse.test.OrderedTestSuite;
import junit.framework.Test;
@@ -33,6 +34,10 @@
@SuppressWarnings({"rawtypes", "unchecked"})
public class MultiProjectTests extends BuilderTests {
+ static {
+// TESTS_NAMES = new String[] { "test461074_error_1_8" };
+ }
+
public MultiProjectTests(String name) {
super(name);
}
@@ -1928,20 +1933,20 @@ public void test103_missing_required_binaries() throws JavaModelException {
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=460993
public void test104_missing_required_binaries() throws CoreException {
- IPath p0 = env.addProject("JRE17", "1.7");
+ IPath p0 = env.addProject("JRE17", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(p0, Util.getJavaClassLibs());
env.removePackageFragmentRoot(p0, "");
IPath root0 = env.addPackageFragmentRoot(p0, "src");
env.setOutputFolder(p0, "bin");
- IPath p1 = env.addProject("org.eclipse.jgit", "1.7");
+ IPath p1 = env.addProject("org.eclipse.jgit", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(p1, Util.getJavaClassLibs());
env.removePackageFragmentRoot(p1, "");
IPath root1 = env.addPackageFragmentRoot(p1, "src");
env.addRequiredProject(p1, p0);
env.setOutputFolder(p1, "bin");
- IPath p2 = env.addProject("org.eclipse.releng.tools", "1.5");
+ IPath p2 = env.addProject("org.eclipse.releng.tools", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(p2, Util.getJavaClassLibs());
env.removePackageFragmentRoot(p2, "");
IPath root2 = env.addPackageFragmentRoot(p2, "src");
@@ -2093,7 +2098,7 @@ public void test461074() throws JavaModelException {
//----------------------------
// Project2
//----------------------------
- IPath p2 = env.addProject("SampleLib", "1.5"); //$NON-NLS-1$
+ IPath p2 = env.addProject("SampleLib", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(p2, Util.getJavaClassLibs());
// remove old package fragment root so that names don't collide
env.removePackageFragmentRoot(p2, ""); //$NON-NLS-1$
@@ -2118,7 +2123,7 @@ public void test461074() throws JavaModelException {
//----------------------------
// Project3
//----------------------------
- IPath p3 = env.addProject("SampleTest", "1.5"); //$NON-NLS-1$
+ IPath p3 = env.addProject("SampleTest", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(p3, Util.getJavaClassLibs());
// remove old package fragment root so that names don't collide
env.removePackageFragmentRoot(p3, ""); //$NON-NLS-1$
@@ -2144,7 +2149,7 @@ public void test461074() throws JavaModelException {
env.removeProject(p3);
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=461074, "indirectly referenced from required .class files" error for unreachable reference of type in overriding method declaration in a library on classpath
-public void test461074_error() throws JavaModelException {
+public void _2551_test461074_error() throws JavaModelException {
//----------------------------
// Project1
//----------------------------
@@ -2164,7 +2169,7 @@ public void test461074_error() throws JavaModelException {
//----------------------------
// Project2
//----------------------------
- IPath p2 = env.addProject("SampleLib", "1.5"); //$NON-NLS-1$
+ IPath p2 = env.addProject("SampleLib", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(p2, Util.getJavaClassLibs());
// remove old package fragment root so that names don't collide
env.removePackageFragmentRoot(p2, ""); //$NON-NLS-1$
@@ -2189,7 +2194,7 @@ public void test461074_error() throws JavaModelException {
//----------------------------
// Project3
//----------------------------
- IPath p3 = env.addProject("SampleTest", "1.5"); //$NON-NLS-1$
+ IPath p3 = env.addProject("SampleTest", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(p3, Util.getJavaClassLibs());
// remove old package fragment root so that names don't collide
env.removePackageFragmentRoot(p3, ""); //$NON-NLS-1$
@@ -2221,4 +2226,76 @@ public void test461074_error() throws JavaModelException {
env.removeProject(p2);
env.removeProject(p3);
}
+//https://bugs.eclipse.org/bugs/show_bug.cgi?id=461074, "indirectly referenced from required .class files" error for unreachable reference of type in overriding method declaration in a library on classpath
+public void test461074_error_1_8() throws JavaModelException {
+ // as of https://github.com/eclipse-jdt/eclipse.jdt.core/pull/2543 and at 1.8+ we tolerate the missing type
+ //----------------------------
+ // Project1
+ //----------------------------
+ IPath p1 = env.addProject("SampleMissing", "1.8"); //$NON-NLS-1$
+ env.addExternalJars(p1, Util.getJavaClassLibs());
+ // remove old package fragment root so that names don't collide
+ env.removePackageFragmentRoot(p1, ""); //$NON-NLS-1$
+ IPath root1 = env.addPackageFragmentRoot(p1, "src"); //$NON-NLS-1$
+ env.setOutputFolder(p1, "bin"); //$NON-NLS-1$
+
+ env.addClass(root1, "pack.missing", "MissingType", //$NON-NLS-1$ //$NON-NLS-2$
+ "package pack.missing;\n" +
+ "public class MissingType {\n" +
+ "}\n"
+ );
+
+ //----------------------------
+ // Project2
+ //----------------------------
+ IPath p2 = env.addProject("SampleLib", "1.8"); //$NON-NLS-1$
+ env.addExternalJars(p2, Util.getJavaClassLibs());
+ // remove old package fragment root so that names don't collide
+ env.removePackageFragmentRoot(p2, ""); //$NON-NLS-1$
+ IPath root2 = env.addPackageFragmentRoot(p2, "src"); //$NON-NLS-1$
+ env.setOutputFolder(p2, "bin"); //$NON-NLS-1$
+
+ env.addClass(root2, "pack.lib", "TopClass", //$NON-NLS-1$ //$NON-NLS-2$
+ "package pack.lib;\n" +
+ "public abstract class TopClass {\n" +
+ " abstract Object get();\n" +
+ "}\n"
+ );
+ env.addClass(root2, "pack.lib", "SuperClass", //$NON-NLS-1$ //$NON-NLS-2$
+ "package pack.lib;\n" +
+ "import pack.missing.MissingType;\n" +
+ "public class SuperClass extends TopClass {\n" +
+ " @Override\n" +
+ " MissingType get() { return null; }\n" +
+ "}\n"
+ );
+
+ //----------------------------
+ // Project3
+ //----------------------------
+ IPath p3 = env.addProject("SampleTest", "1.8"); //$NON-NLS-1$
+ env.addExternalJars(p3, Util.getJavaClassLibs());
+ // remove old package fragment root so that names don't collide
+ env.removePackageFragmentRoot(p3, ""); //$NON-NLS-1$
+ IPath root3 = env.addPackageFragmentRoot(p3, "src"); //$NON-NLS-1$
+ env.setOutputFolder(p3, "bin"); //$NON-NLS-1$
+
+ env.addClass(root3, "pack.test", "Test", //$NON-NLS-1$ //$NON-NLS-2$
+ "package pack.test;\n" +
+ "import pack.lib.SuperClass;\n" +
+ "public class Test extends SuperClass {/*empty*/}\n"
+ );
+
+ // for Project1
+ env.addRequiredProject(p2, p1);
+ env.addRequiredProject(p3, p2);
+ env.waitForManualRefresh();
+ fullBuild();
+ env.waitForAutoBuild();
+ expectingNoProblemsFor(p3);
+ env.setBuildOrder(null);
+ env.removeProject(p1);
+ env.removeProject(p2);
+ env.removeProject(p3);
+}
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/PackageInfoTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/PackageInfoTest.java
index 8576b6856a..76af70f3ee 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/PackageInfoTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/PackageInfoTest.java
@@ -34,6 +34,7 @@
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.compiler.CategorizedProblem;
import org.eclipse.jdt.core.tests.util.Util;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
@SuppressWarnings("rawtypes")
public class PackageInfoTest extends BuilderTests {
@@ -52,7 +53,7 @@ public static Test suite() {
return buildTestSuite(PackageInfoTest.class);
}
public void test001() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -95,7 +96,7 @@ public void test001() throws JavaModelException {
assertSourceEquals("Different messages", expectedOutput, stringWriter.toString());
}
public void test002() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -147,7 +148,7 @@ public void test002() throws JavaModelException {
executeClass(projectPath, "testcase.Main", "@testcase.TestAnnotation()@testcase.TestAnnotation()", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
public void test003() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -170,7 +171,7 @@ public void test003() throws JavaModelException {
// test for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=252555 : NPE
// on duplicate package-info
public void test004() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -209,7 +210,7 @@ public void test004() throws JavaModelException {
// test for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=258145 : JME
// on duplicate package-info
public void test258145() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -251,7 +252,7 @@ public void test258145() throws JavaModelException {
// (NPE upon creation/deletion of package-info.java in default package)
public void test323785 () throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -273,7 +274,7 @@ public void test323785 () throws JavaModelException {
// verify that changes to package info containing secondary types do trigger incremental build.
public void test323785a () throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -301,7 +302,7 @@ public void test323785a () throws JavaModelException {
// test when the package-info is added with the default annotation, the problem disappears
public void testBug372012() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -358,7 +359,7 @@ public void testBug372012() throws JavaModelException {
// test when the the default annotations are added to all top level types, the problem stays
public void testBug372012a() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -417,7 +418,7 @@ public void testBug372012a() throws JavaModelException {
// test when the the default annotations is added to only 1 top level type, the problem stays
public void testBug372012b() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -475,7 +476,7 @@ public void testBug372012b() throws JavaModelException {
// test when the the default annotation is removed from package-info, the problem comes back
public void testBug372012c() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -551,7 +552,7 @@ public void testBug367836() throws JavaModelException {
// verify that markers are created on the correct resource
public void testBug374063() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -595,7 +596,7 @@ public void testBug374063() throws JavaModelException {
}
// 382960
public void testBug382960() throws JavaModelException, CoreException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -647,7 +648,7 @@ public void testBug382960() throws JavaModelException, CoreException {
// package fragments in all source folders are removed.
public void testBug525469() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
fullBuild(projectPath);
@@ -710,7 +711,7 @@ public void testBug525469() throws JavaModelException {
// [BUG] Syntax error, modifiers are not allowed here on a @deprecated javadoc tag in package-info.java
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=569780
public void testIssue803() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
IPath src = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
@@ -736,7 +737,7 @@ public void testIssue803() throws JavaModelException {
// [BUG] Syntax error, modifiers are not allowed here on a @deprecated javadoc tag in package-info.java
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=569780
public void testIssue803_2() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
IPath src = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
@@ -761,7 +762,7 @@ public void testIssue803_2() throws JavaModelException {
// [BUG] Syntax error, modifiers are not allowed here on a @deprecated javadoc tag in package-info.java
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=569780
public void testIssue803_3() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
IPath src = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
@@ -784,7 +785,7 @@ public void testIssue803_3() throws JavaModelException {
// [BUG] Syntax error, modifiers are not allowed here on a @deprecated javadoc tag in package-info.java
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=569780
public void testIssue803_4() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
IPath src = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
@@ -810,7 +811,7 @@ public void testIssue803_4() throws JavaModelException {
// [BUG] Syntax error, modifiers are not allowed here on a @deprecated javadoc tag in package-info.java
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=569780
public void testIssue803_5() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
IPath src = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/ParticipantBuildTests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/ParticipantBuildTests.java
index 51a21a8b21..bb4e9864a3 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/ParticipantBuildTests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/ParticipantBuildTests.java
@@ -29,6 +29,7 @@
import org.eclipse.jdt.core.tests.builder.participants.TestCompilationParticipant2;
import org.eclipse.jdt.core.tests.builder.participants.TestCompilationParticipant3;
import org.eclipse.jdt.core.tests.util.Util;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
@SuppressWarnings({"rawtypes", "unchecked"})
public class ParticipantBuildTests extends BuilderTests {
@@ -154,7 +155,7 @@ public void buildStarting(BuildContext[] files, boolean isBatchBuild) {
}
public void testDefaultValue() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$ //$NON-NLS-2$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
IPath root = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
@@ -248,7 +249,7 @@ public void processAnnotations(BuildContext[] files) {
* (regression test for bug 134345 Problems from CompilationParticipants do not get cleaned up unless there are Java errors)
*/
public void testParticipantProblems() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, "");
IPath root = env.addPackageFragmentRoot(projectPath, "src");
@@ -283,7 +284,7 @@ public void buildStarting(BuildContext[] files, boolean isBatch) {
}
public void testProcessAnnotationDeclarations() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$ //$NON-NLS-2$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
IPath root = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
@@ -335,7 +336,7 @@ public void processAnnotations(BuildContext[] files) {
}
public void testProcessAnnotationQualifiedReferences() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$ //$NON-NLS-2$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
IPath root = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
@@ -382,7 +383,7 @@ public void processAnnotations(BuildContext[] files) {
* Test that a build participant can inspect the declared annotations by name
*/
public void testProcessAnnotationHasAnnotation() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$ //$NON-NLS-2$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
IPath root = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
@@ -417,7 +418,7 @@ public void processAnnotations(BuildContext[] files) {
}
public void testProcessAnnotationReferences() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$ //$NON-NLS-2$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
IPath root = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
@@ -703,7 +704,7 @@ public Optional postProcess(BuildContext file, ByteArrayInputStream byte
}
public void testResolvedMethod() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5"); //$NON-NLS-1$ //$NON-NLS-2$
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion()); //$NON-NLS-1$
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, ""); //$NON-NLS-1$
IPath root = env.addPackageFragmentRoot(projectPath, "src"); //$NON-NLS-1$
@@ -766,7 +767,7 @@ public void processAnnotations(BuildContext[] files) {
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158611
// Checking the GENERATED_BY attribute
public void test1001() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, "");
IPath root = env.addPackageFragmentRoot(projectPath, "src");
@@ -796,7 +797,7 @@ public void buildStarting(BuildContext[] files, boolean isBatch) {
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158611
// Checking the GENERATED_BY attribute
public void test1002() throws JavaModelException {
- IPath projectPath = env.addProject("Project", "1.5");
+ IPath projectPath = env.addProject("Project", CompilerOptions.getFirstSupportedJavaVersion());
env.addExternalJars(projectPath, Util.getJavaClassLibs());
env.removePackageFragmentRoot(projectPath, "");
IPath root = env.addPackageFragmentRoot(projectPath, "src");
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/TestingEnvironment.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/TestingEnvironment.java
index 840ab5dfb5..b1315d77b9 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/TestingEnvironment.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/TestingEnvironment.java
@@ -181,7 +181,7 @@ public void addProject(IProject project){
}
public IPath addProject(String projectName){
- return addProject(projectName, "1.4");
+ return addProject(projectName, CompilerOptions.getFirstSupportedJavaVersion());
}
public IPath addProject(String projectName, String compliance){
@@ -189,19 +189,7 @@ public IPath addProject(String projectName, String compliance){
IProject project = createProject(projectName);
int requiredComplianceFlag = 0;
String compilerVersion = null;
- if ("1.5".equals(compliance)) {
- requiredComplianceFlag = AbstractCompilerTest.F_1_5;
- compilerVersion = CompilerOptions.VERSION_1_5;
- }
- else if ("1.6".equals(compliance)) {
- requiredComplianceFlag = AbstractCompilerTest.F_1_6;
- compilerVersion = CompilerOptions.VERSION_1_6;
- }
- else if ("1.7".equals(compliance)) {
- requiredComplianceFlag = AbstractCompilerTest.F_1_7;
- compilerVersion = CompilerOptions.VERSION_1_7;
- }
- else if ("1.8".equals(compliance)) {
+ if ("1.8".equals(compliance)) {
requiredComplianceFlag = AbstractCompilerTest.F_1_8;
compilerVersion = CompilerOptions.VERSION_1_8;
}
@@ -241,7 +229,7 @@ else if ("12".equals(compliance)) {
} else if ("19".equals(compliance)) {
requiredComplianceFlag = AbstractCompilerTest.F_19;
compilerVersion = CompilerOptions.VERSION_19;
- } else if (!"1.4".equals(compliance) && !"1.3".equals(compliance)) {
+ } else {
throw new UnsupportedOperationException("Test framework doesn't support compliance level: " + compliance);
}
if (requiredComplianceFlag != 0) {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/forceQualifierUpdate.txt b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/forceQualifierUpdate.txt
index c997cd7c6c..f8754e690a 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/forceQualifierUpdate.txt
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/forceQualifierUpdate.txt
@@ -1,2 +1,3 @@
# To force a version qualifier update, add the bug here
-Bug 534597 - Unanticipated comparator errors in I20180511-2000
\ No newline at end of file
+Bug 534597 - Unanticipated comparator errors in I20180511-2000
+https://github.com/eclipse-jdt/eclipse.jdt.core/issues/2652
\ No newline at end of file
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/AnnotationCompletionParserTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/AnnotationCompletionParserTest.java
index ab78e15829..1caff14a6c 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/AnnotationCompletionParserTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/AnnotationCompletionParserTest.java
@@ -38,9 +38,9 @@ public static Test suite() {
@Override
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_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
return options;
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/AnnotationDietRecoveryTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/AnnotationDietRecoveryTest.java
index 40589f6b45..74684811d4 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/AnnotationDietRecoveryTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/AnnotationDietRecoveryTest.java
@@ -26,7 +26,6 @@
import org.eclipse.jdt.internal.compiler.SourceElementParser;
import org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration;
import org.eclipse.jdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import org.eclipse.jdt.internal.compiler.parser.Parser;
@@ -40,13 +39,12 @@
public class AnnotationDietRecoveryTest extends AbstractCompilerTest {
private static final boolean CHECK_ALL_PARSE = true;
public static boolean optimizeStringLiterals = false;
- public static long sourceLevel = ClassFileConstants.JDK1_3; //$NON-NLS-1$
public AnnotationDietRecoveryTest(String testName){
super(testName);
}
public static Test suite() {
- return buildMinimalComplianceTestSuite(testClass(), F_1_5);
+ return buildMinimalComplianceTestSuite(testClass(), FIRST_SUPPORTED_JAVA_VERSION);
}
public static Class testClass() {
return AnnotationDietRecoveryTest.class;
@@ -57,9 +55,9 @@ public static Class testClass() {
@Override
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_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
return options;
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/EnumCompletionParserTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/EnumCompletionParserTest.java
index 8aeb08b1fa..487089a185 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/EnumCompletionParserTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/EnumCompletionParserTest.java
@@ -34,9 +34,9 @@ public static Test suite() {
@Override
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_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
return options;
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/EnumDietRecoveryTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/EnumDietRecoveryTest.java
index 827e1722dd..cb0733ac82 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/EnumDietRecoveryTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/EnumDietRecoveryTest.java
@@ -24,7 +24,6 @@
import org.eclipse.jdt.internal.compiler.SourceElementParser;
import org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration;
import org.eclipse.jdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import org.eclipse.jdt.internal.compiler.parser.Parser;
@@ -34,21 +33,17 @@
@SuppressWarnings({ "unchecked", "rawtypes" })
public class EnumDietRecoveryTest extends AbstractCompilerTest {
public static boolean optimizeStringLiterals = false;
- public static long sourceLevel = ClassFileConstants.JDK1_3; //$NON-NLS-1$
public EnumDietRecoveryTest(String testName){
super(testName);
}
-/*
- * Toggle compiler in mode -1.5
- */
@Override
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_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
return options;
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/GenericDietRecoveryTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/GenericDietRecoveryTest.java
index 63c5d4c408..b28326a788 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/GenericDietRecoveryTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/GenericDietRecoveryTest.java
@@ -26,7 +26,6 @@
import org.eclipse.jdt.internal.compiler.SourceElementParser;
import org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration;
import org.eclipse.jdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import org.eclipse.jdt.internal.compiler.parser.Parser;
@@ -36,7 +35,6 @@
@SuppressWarnings({ "unchecked", "rawtypes" })
public class GenericDietRecoveryTest extends AbstractCompilerTest {
public static boolean optimizeStringLiterals = false;
- public static long sourceLevel = ClassFileConstants.JDK1_3; //$NON-NLS-1$
public GenericDietRecoveryTest(String testName){
super(testName);
@@ -44,15 +42,13 @@ public GenericDietRecoveryTest(String testName){
static {
// TESTS_NAMES = new String[] { "test0025" };
}
-/*
- * Toggle compiler in mode -1.5
- */
+
@Override
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_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
return options;
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/GenericsCompletionParserTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/GenericsCompletionParserTest.java
index 27012b3658..26b6855c59 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/GenericsCompletionParserTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/GenericsCompletionParserTest.java
@@ -30,9 +30,9 @@ public static Test suite() {
@Override
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_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
return options;
}
public void test0001(){
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/ParserTest1_7.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/ParserTest1_7.java
index 2afedae706..fa56093a9c 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/ParserTest1_7.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/ParserTest1_7.java
@@ -43,7 +43,7 @@ public static Class testClass() {
return ParserTest1_7.class;
}
public static Test suite() {
- return buildMinimalComplianceTestSuite(testClass(), F_1_7);
+ return buildMinimalComplianceTestSuite(testClass(), FIRST_SUPPORTED_JAVA_VERSION);
}
public ParserTest1_7(String testName){
super(testName);
@@ -236,9 +236,9 @@ public void checkParse(
@Override
protected Map getCompilerOptions() {
Map options = super.getCompilerOptions();
- 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);
+ options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
return options;
}
public void test0001() {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/RunCompletionParserTests.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/RunCompletionParserTests.java
index 94bc559024..adfe1ba55a 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/RunCompletionParserTests.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/RunCompletionParserTests.java
@@ -61,59 +61,6 @@ public static 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)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(ClassFileConstants.JDK1_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(ClassFileConstants.JDK1_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(ClassFileConstants.JDK1_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(ClassFileConstants.JDK1_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(ClassFileConstants.JDK1_7, tests_1_7));
- }
if ((possibleComplianceLevels & AbstractCompilerTest.F_1_8) != 0) {
ArrayList tests_1_8 = (ArrayList)testClasses.clone();
tests_1_8.addAll(TEST_CLASSES_1_5);
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/SourceElementParserTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/SourceElementParserTest.java
index fdbebe9848..ea146e1a7a 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/SourceElementParserTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/SourceElementParserTest.java
@@ -5346,9 +5346,9 @@ public void _test80() {
public void test81() {
Map options = getCompilerOptions();
- options.put(JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_5);
- options.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_5);
- options.put(JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_5);
+ options.put(JavaCore.COMPILER_SOURCE, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(JavaCore.COMPILER_COMPLIANCE, CompilerOptions.getFirstSupportedJavaVersion());
String s =
"import java.util.Collection;\n" +
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/StatementRecoveryTest_1_5.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/StatementRecoveryTest_1_5.java
index 333be59167..aa9c14af65 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/StatementRecoveryTest_1_5.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/StatementRecoveryTest_1_5.java
@@ -234,9 +234,9 @@ public void checkParse(
@Override
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_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
return options;
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/TestAll.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/TestAll.java
index 2d560be188..c2c471e5c8 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/TestAll.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/TestAll.java
@@ -83,35 +83,6 @@ public static TestSuite getTestSuite(boolean addComplianceDiagnoseTest) {
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();
- TestCase.resetForgottenFilters(tests_1_3);
- all.addTest(AbstractCompilerTest.buildComplianceTestSuite(ClassFileConstants.JDK1_3, tests_1_3));
- }
- if ((possibleComplianceLevels & AbstractCompilerTest.F_1_4) != 0) {
- ArrayList tests_1_4 = (ArrayList)testClasses.clone();
- TestCase.resetForgottenFilters(tests_1_4);
- all.addTest(AbstractCompilerTest.buildComplianceTestSuite(ClassFileConstants.JDK1_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);
- TestCase.resetForgottenFilters(tests_1_5);
- all.addTest(AbstractCompilerTest.buildComplianceTestSuite(ClassFileConstants.JDK1_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);
- TestCase.resetForgottenFilters(tests_1_6);
- all.addTest(AbstractCompilerTest.buildComplianceTestSuite(ClassFileConstants.JDK1_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);
- tests_1_7.add(ParserTest1_7.class);
- TestCase.resetForgottenFilters(tests_1_7);
- all.addTest(AbstractCompilerTest.buildComplianceTestSuite(ClassFileConstants.JDK1_7, tests_1_7));
- }
if ((possibleComplianceLevels & AbstractCompilerTest.F_1_8) != 0) {
ArrayList tests_1_8 = (ArrayList)testClasses.clone();
tests_1_8.addAll(TEST_CLASSES_1_5);
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractBatchCompilerTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractBatchCompilerTest.java
index 383c50b411..297333c731 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractBatchCompilerTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractBatchCompilerTest.java
@@ -22,13 +22,13 @@
import java.io.StringReader;
import java.util.ArrayList;
-import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.compiler.CompilationProgress;
import org.eclipse.jdt.core.compiler.batch.BatchCompiler;
import org.eclipse.jdt.core.tests.util.Util;
import org.eclipse.jdt.internal.compiler.batch.ClasspathLocation;
import org.eclipse.jdt.internal.compiler.batch.FileSystem;
import org.eclipse.jdt.internal.compiler.batch.Main;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
public abstract class AbstractBatchCompilerTest extends AbstractRegressionTest {
@@ -160,280 +160,277 @@ protected void setUp() throws Exception {
CASCADED_JARS_CREATED = false; // initialization needed for each subclass individually
}
- protected void createCascadedJars() {
- if (!CASCADED_JARS_CREATED) {
- File libDir = new File(LIB_DIR);
- Util.delete(libDir); // make sure we recycle the libs
- libDir.mkdirs();
- try {
- Util.createJar(
- new String[] {
- "p/A.java",
- "package p;\n" +
- "public class A {\n" +
- "}",
- },
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: lib2.jar\n",
- "p/S1.java",
- "package p;\n" +
- "public class S1 {\n" +
- "}",
- },
- LIB_DIR + "/lib1.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- new String[] {
- "p/B.java",
- "package p;\n" +
- "public class B {\n" +
- "}",
- "p/R.java",
- "package p;\n" +
- "public class R {\n" +
- " public static final int R2 = 2;\n" +
- "}",
- },
- new String[] {
- "p/S2.java",
- "package p;\n" +
- "public class S2 {\n" +
- "}",
- },
- LIB_DIR + "/lib2.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- new String[] {
- "p/C.java",
- "package p;\n" +
- "public class C {\n" +
- "}",
- "p/R.java",
- "package p;\n" +
- "public class R {\n" +
- " public static final int R3 = 3;\n" +
- "}",
- },
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: lib4.jar\n",
- },
- LIB_DIR + "/lib3.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- new String[] {
- "p/D.java",
- "package p;\n" +
- "public class D {\n" +
- "}",
- },
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: lib1.jar lib3.jar\n",
- },
- LIB_DIR + "/lib4.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- new String[] {
- "p/C.java",
- "package p;\n" +
- "public class C {\n" +
- "}",
- "p/R.java",
- "package p;\n" +
- "public class R {\n" +
- " public static final int R3 = 3;\n" +
- "}",
- },
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: s/lib6.jar\n",
- },
- LIB_DIR + "/lib5.jar",
- JavaCore.VERSION_1_4);
- new File(LIB_DIR + "/s").mkdir();
- Util.createJar(
- new String[] {
- "p/D.java",
- "package p;\n" +
- "public class D {\n" +
- "}",
- },
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: ../lib7.jar\n",
- },
- LIB_DIR + "/s/lib6.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- new String[] {
- "p/A.java",
- "package p;\n" +
- "public class A {\n" +
- "}",
- },
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: lib2.jar\n",
- },
- LIB_DIR + "/lib7.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- new String[] {
- "p/F.java",
- "package p;\n" +
- "public class F {\n" +
- "}",
- },
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: " + LIB_DIR + "/lib3.jar lib1.jar\n",
- },
- LIB_DIR + "/lib8.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- new String[] {
- "p/G.java",
- "package p;\n" +
- "public class G {\n" +
- "}",
- },
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: lib1.jar\n" +
- "Class-Path: lib3.jar\n",
- },
- LIB_DIR + "/lib9.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- new String[] {
- "p/A.java",
- "package p;\n" +
- "public class A {\n" +
- "}",
- },
- // spoiled jar: MANIFEST.MF is a directory
- new String[] {
- "META-INF/MANIFEST.MF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: lib2.jar\n",
- },
- LIB_DIR + "/lib10.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- new String[] {
- "p/A.java",
- "package p;\n" +
- "public class A {\n" +
- "}",
- },
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path:\n",
- },
- LIB_DIR + "/lib11.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- null,
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path:lib1.jar\n", // missing space
- },
- LIB_DIR + "/lib12.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- null,
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path:lib1.jar lib1.jar\n", // missing space
- },
- LIB_DIR + "/lib13.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- null,
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- " Class-Path: lib1.jar\n", // extra space at line start
- },
- LIB_DIR + "/lib14.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- null,
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: lib1.jar", // missing newline at end
- },
- LIB_DIR + "/lib15.jar",
- JavaCore.VERSION_1_4);
- Util.createJar(
- new String[] {
- "p/A.java",
- "package p;\n" +
- "public class A {\n" +
- "}",
- },
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: \n" +
- " lib2.jar\n",
- "p/S1.java",
- "package p;\n" +
- "public class S1 {\n" +
- "}",
- },
- LIB_DIR + "/lib16.jar",
- JavaCore.VERSION_1_4);
- new File(LIB_DIR + "/dir").mkdir();
- Util.createJar(
- new String[] {
- "p/A.java",
- "package p;\n" +
- "public class A {\n" +
- "}",
- },
- new String[] {
- "META-INF/MANIFEST.MF",
- "Manifest-Version: 1.0\n" +
- "Created-By: Eclipse JDT Test Harness\n" +
- "Class-Path: ../lib2.jar\n",
- },
- LIB_DIR + "/dir/lib17.jar",
- JavaCore.VERSION_1_4);
- CASCADED_JARS_CREATED = true;
- } catch (IOException e) {
- // ignore
- }
+ protected void createCascadedJars() throws IOException {
+ if (CASCADED_JARS_CREATED) {
+ return;
}
+ File libDir = new File(LIB_DIR);
+ Util.delete(libDir); // make sure we recycle the libs
+ libDir.mkdirs();
+ Util.createJar(
+ new String[] {
+ "p/A.java",
+ "package p;\n" +
+ "public class A {\n" +
+ "}",
+ },
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: lib2.jar\n",
+ "p/S1.java",
+ "package p;\n" +
+ "public class S1 {\n" +
+ "}",
+ },
+ LIB_DIR + "/lib1.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ new String[] {
+ "p/B.java",
+ "package p;\n" +
+ "public class B {\n" +
+ "}",
+ "p/R.java",
+ "package p;\n" +
+ "public class R {\n" +
+ " public static final int R2 = 2;\n" +
+ "}",
+ },
+ new String[] {
+ "p/S2.java",
+ "package p;\n" +
+ "public class S2 {\n" +
+ "}",
+ },
+ LIB_DIR + "/lib2.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ new String[] {
+ "p/C.java",
+ "package p;\n" +
+ "public class C {\n" +
+ "}",
+ "p/R.java",
+ "package p;\n" +
+ "public class R {\n" +
+ " public static final int R3 = 3;\n" +
+ "}",
+ },
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: lib4.jar\n",
+ },
+ LIB_DIR + "/lib3.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ new String[] {
+ "p/D.java",
+ "package p;\n" +
+ "public class D {\n" +
+ "}",
+ },
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: lib1.jar lib3.jar\n",
+ },
+ LIB_DIR + "/lib4.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ new String[] {
+ "p/C.java",
+ "package p;\n" +
+ "public class C {\n" +
+ "}",
+ "p/R.java",
+ "package p;\n" +
+ "public class R {\n" +
+ " public static final int R3 = 3;\n" +
+ "}",
+ },
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: s/lib6.jar\n",
+ },
+ LIB_DIR + "/lib5.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ new File(LIB_DIR + "/s").mkdir();
+ Util.createJar(
+ new String[] {
+ "p/D.java",
+ "package p;\n" +
+ "public class D {\n" +
+ "}",
+ },
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: ../lib7.jar\n",
+ },
+ LIB_DIR + "/s/lib6.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ new String[] {
+ "p/A.java",
+ "package p;\n" +
+ "public class A {\n" +
+ "}",
+ },
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: lib2.jar\n",
+ },
+ LIB_DIR + "/lib7.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ new String[] {
+ "p/F.java",
+ "package p;\n" +
+ "public class F {\n" +
+ "}",
+ },
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: " + LIB_DIR + "/lib3.jar lib1.jar\n",
+ },
+ LIB_DIR + "/lib8.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ new String[] {
+ "p/G.java",
+ "package p;\n" +
+ "public class G {\n" +
+ "}",
+ },
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: lib1.jar\n" +
+ "Class-Path: lib3.jar\n",
+ },
+ LIB_DIR + "/lib9.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ new String[] {
+ "p/A.java",
+ "package p;\n" +
+ "public class A {\n" +
+ "}",
+ },
+ // spoiled jar: MANIFEST.MF is a directory
+ new String[] {
+ "META-INF/MANIFEST.MF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: lib2.jar\n",
+ },
+ LIB_DIR + "/lib10.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ new String[] {
+ "p/A.java",
+ "package p;\n" +
+ "public class A {\n" +
+ "}",
+ },
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path:\n",
+ },
+ LIB_DIR + "/lib11.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ null,
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path:lib1.jar\n", // missing space
+ },
+ LIB_DIR + "/lib12.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ null,
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path:lib1.jar lib1.jar\n", // missing space
+ },
+ LIB_DIR + "/lib13.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ null,
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ " Class-Path: lib1.jar\n", // extra space at line start
+ },
+ LIB_DIR + "/lib14.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ null,
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: lib1.jar", // missing newline at end
+ },
+ LIB_DIR + "/lib15.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ Util.createJar(
+ new String[] {
+ "p/A.java",
+ "package p;\n" +
+ "public class A {\n" +
+ "}",
+ },
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: \n" +
+ " lib2.jar\n",
+ "p/S1.java",
+ "package p;\n" +
+ "public class S1 {\n" +
+ "}",
+ },
+ LIB_DIR + "/lib16.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ new File(LIB_DIR + "/dir").mkdir();
+ Util.createJar(
+ new String[] {
+ "p/A.java",
+ "package p;\n" +
+ "public class A {\n" +
+ "}",
+ },
+ new String[] {
+ "META-INF/MANIFEST.MF",
+ "Manifest-Version: 1.0\n" +
+ "Created-By: Eclipse JDT Test Harness\n" +
+ "Class-Path: ../lib2.jar\n",
+ },
+ LIB_DIR + "/dir/lib17.jar",
+ CompilerOptions.getFirstSupportedJavaVersion());
+ CASCADED_JARS_CREATED = true;
}
protected String getLibraryClassesAsQuotedString() {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractComparableTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractComparableTest.java
index 48504c3e61..eeb34632cd 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractComparableTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractComparableTest.java
@@ -20,11 +20,11 @@
package org.eclipse.jdt.core.tests.compiler.regression;
import java.util.Map;
-import junit.framework.Test;
-import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
+import junit.framework.Test;
+
@SuppressWarnings({ "unchecked", "rawtypes" })
public class AbstractComparableTest extends AbstractRegressionTest {
@@ -97,7 +97,7 @@ public class AbstractComparableTest extends AbstractRegressionTest {
"}";
public static Test buildComparableTestSuite(Class evaluationTestClass) {
- Test suite = buildMinimalComplianceTestSuite(evaluationTestClass, F_1_5);
+ Test suite = buildMinimalComplianceTestSuite(evaluationTestClass, FIRST_SUPPORTED_JAVA_VERSION);
TESTS_COUNTERS.put(evaluationTestClass.getName(), Integer.valueOf(suite.countTestCases()));
return suite;
}
@@ -145,8 +145,6 @@ protected String intersection(String... types) {
types = temp;
}
}
- if (this.complianceLevel >= ClassFileConstants.JDK1_8)
- return String.join(" & ", types);
- return String.join("&", types);
+ return String.join(" & ", types);
}
}
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java
index 14a4b14a79..2272138b24 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AbstractRegressionTest.java
@@ -4018,7 +4018,8 @@ protected void setUp() throws Exception {
String version = JavacCompiler.getVersion(cmdLineHeader.toString());
cmdLineHeader.append(" -d ");
cmdLineHeader.append(JAVAC_OUTPUT_DIR_NAME.indexOf(" ") != -1 ? "\"" + JAVAC_OUTPUT_DIR_NAME + "\"" : JAVAC_OUTPUT_DIR_NAME);
- cmdLineHeader.append(" -source 1.5 -deprecation -Xlint "); // enable recommended warnings
+ String firstSupportedVersion = CompilerOptions.getFirstSupportedJavaVersion();
+ cmdLineHeader.append(" -source " + firstSupportedVersion + " -deprecation -Xlint "); // enable recommended warnings
// WORK new javac system does not do that... reconsider
// REVIEW consider enabling all warnings instead? Philippe does not see
// this as ez to use (too many changes in logs)
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
index 466557801e..7470b3d02d 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
@@ -7973,8 +7973,8 @@ public void test237() {
"----------\n" +
"2. ERROR in X.java (at line 6)\n" +
" List ls = get();\n" +
- " ^^^^^\n" +
- "Type mismatch: cannot convert from B to List\n" +
+ " ^^^\n" +
+ "The method get() from the type X refers to the missing type ArrayList\n" +
"----------\n");
}
public void test238() {
@@ -9134,9 +9134,9 @@ public void test272() throws Exception {
return;
}
Map options = getCompilerOptions();
- options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
- options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
this.runConformTest(
new String[] {
"X.java",
@@ -11015,9 +11015,9 @@ public void test398657() throws Exception {
return;
}
Map options = getCompilerOptions();
- options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
- options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
this.runConformTest(
new String[] {
"p/Annot.java",
@@ -11053,9 +11053,9 @@ public void test398657_2() throws Exception {
return;
}
Map options = getCompilerOptions();
- options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
- options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
this.runConformTest(
new String[] {
"p/Y.java",
@@ -11200,13 +11200,11 @@ public void test416107b() {
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=427367
public void test427367() throws Exception {
- if (this.complianceLevel < ClassFileConstants.JDK1_5) {
- return;
- }
+
Map options = getCompilerOptions();
- options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
- options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
- options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
this.runNegativeTest(
new String[] {
"X.java",
@@ -11264,9 +11262,7 @@ public void test427367() throws Exception {
}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=376977
public void test376977() throws Exception {
- if (this.complianceLevel < ClassFileConstants.JDK1_5) {
- return;
- }
+
this.runNegativeTest(
new String[] {
"X.java",
@@ -11366,9 +11362,7 @@ public void test438437() {
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=434556, Broken class file generated for incorrect annotation usage
public void test434556() throws Exception {
- if (this.complianceLevel < ClassFileConstants.JDK1_5) {
- return;
- }
+
this.runNegativeTest(
new String[] {
"A.java",
@@ -11419,9 +11413,6 @@ public void test434556() throws Exception {
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=433747, [compiler] TYPE Annotation allowed in package-info instead of only PACKAGE
public void test433747() throws Exception {
- if (this.complianceLevel < ClassFileConstants.JDK1_5) {
- return;
- }
String[] src = new String[] {
"p/package-info.java",
"@PackageAnnot(\"p123456\")\n" +
@@ -11455,13 +11446,10 @@ public void test433747() throws Exception {
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=456960 - Broken classfile generated for incorrect annotation usage - case 2
public void test456960() throws Exception {
- if (this.complianceLevel < ClassFileConstants.JDK1_5) {
- return;
- }
Map options = getCompilerOptions();
- options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
- options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
- options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
+ options.put(CompilerOptions.OPTION_Source, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.getFirstSupportedJavaVersion());
+ options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.getFirstSupportedJavaVersion());
this.runNegativeTest(
new String[] {
"X.java",
@@ -12351,9 +12339,7 @@ public void testBug490698_comment16() {
}
public void testBugVisibility() {
- if (this.complianceLevel < ClassFileConstants.JDK1_5) {
- return;
- }
+
runConformTest(
new String[] {
"X.java",
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ArrayTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ArrayTest.java
index b3b528bdd8..7a4618f351 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ArrayTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ArrayTest.java
@@ -23,8 +23,6 @@
import org.eclipse.jdt.core.ToolFactory;
import org.eclipse.jdt.core.tests.util.Util;
import org.eclipse.jdt.core.util.ClassFileBytesDisassembler;
-import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
@SuppressWarnings({ "unchecked", "rawtypes" })
public class ArrayTest extends AbstractRegressionTest {
@@ -247,10 +245,6 @@ public void test010() {
}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=148807 - variation
public void test011() throws Exception {
- 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",
@@ -311,10 +305,6 @@ public void test011() throws Exception {
}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=148807 - variation
public void test012() throws Exception {
- 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",
@@ -403,16 +393,10 @@ public void test013() {
"argument cannot be resolved to a variable\n" +
"----------\n");
}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=247307
// Check return type of array#clone()
public void test014() throws Exception {
Map optionsMap = getCompilerOptions();
- CompilerOptions options = new CompilerOptions(optionsMap);
- if (options.complianceLevel > ClassFileConstants.JDK1_4) {
- // check that #clone() return type is changed ONLY from -source 1.5 only (independant from compliance level)
- optionsMap.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4);
- }
- this.runNegativeTest(
+ this.runConformTest(
new String[] {
"X.java",
"public class X {\n" +
@@ -421,22 +405,12 @@ public void test014() throws Exception {
" }\n" +
"}\n",
},
- "----------\n" +
- "1. ERROR in X.java (at line 3)\n" +
- " long[] other = longs.clone();\n" +
- " ^^^^^^^^^^^^^\n" +
- "Type mismatch: cannot convert from Object to long[]\n" +
- "----------\n",
- null,
- true,
+ "",
optionsMap);
}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=247307 - variation
//Check return type of array#clone()
public void test015() throws Exception {
- if ( new CompilerOptions(getCompilerOptions()).sourceLevel < ClassFileConstants.JDK1_5) {
- return;
- }
this.runConformTest(
new String[] {
"X.java",
@@ -469,18 +443,8 @@ public void test016() throws Exception {
"\n",
ClassFileBytesDisassembler.DETAILED);
- String expectedOutput = new CompilerOptions(getCompilerOptions()).sourceLevel <= ClassFileConstants.JDK1_4
- ? " // Method descriptor #15 ([J)V\n" +
- " // Stack: 1, Locals: 3\n" +
- " void foo(long[] longs) throws java.lang.Exception;\n" +
- " 0 aload_1 [longs]\n" +
- " 1 invokevirtual java.lang.Object.clone() : java.lang.Object [19]\n" +
- " 4 astore_2 [other]\n" +
- " 5 return\n" +
- " Line numbers:\n" +
- " [pc: 0, line: 3]\n" +
- " [pc: 5, line: 4]\n"
- : " // Method descriptor #15 ([J)V\n" +
+ String expectedOutput =
+ " // Method descriptor #15 ([J)V\n" +
" // Stack: 1, Locals: 3\n" +
" void foo(long[] longs) throws java.lang.Exception;\n" +
" 0 aload_1 [longs]\n" +
@@ -501,15 +465,9 @@ public void test016() throws Exception {
return;
}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=247307 - variation
//Check constant pool declaring class of array#clone()
public void test017() throws Exception {
Map optionsMap = getCompilerOptions();
- CompilerOptions options = new CompilerOptions(optionsMap);
- if (options.complianceLevel > ClassFileConstants.JDK1_4) {
- // check that #clone() return type is changed ONLY from -source 1.5 only (independant from compliance level)
- optionsMap.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4);
- }
this.runConformTest(
new String[] {
"X.java",
@@ -538,7 +496,7 @@ public void test017() throws Exception {
" // Stack: 1, Locals: 3\n" +
" void foo(long[] longs) throws java.lang.Exception;\n" +
" 0 aload_1 [longs]\n" +
- " 1 invokevirtual java.lang.Object.clone() : java.lang.Object [19]\n" +
+ " 1 invokevirtual long[].clone() : java.lang.Object [19]\n" +
" 4 astore_2 [other]\n" +
" 5 return\n" +
" Line numbers:\n" +
@@ -556,8 +514,6 @@ public void test017() throws Exception {
// https://bugs.eclipse.org/331872 - [compiler] NPE in Scope.createArrayType when attempting qualified access from type parameter
public void test018() throws Exception {
- if (this.complianceLevel < ClassFileConstants.JDK1_5)
- return;
this.runNegativeTest(
new String[] {
"X.java",
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssertionTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssertionTest.java
index d151a04b53..46fcf009f3 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssertionTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssertionTest.java
@@ -31,7 +31,7 @@ public AssertionTest(String name) {
}
public static Test suite() {
- return buildMinimalComplianceTestSuite(testClass(), F_1_4);
+ return buildMinimalComplianceTestSuite(testClass(), FIRST_SUPPORTED_JAVA_VERSION);
}
public static Class testClass() {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssignmentTest_1_5.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssignmentTest_1_5.java
index fb8a22161c..6dafc7c59e 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssignmentTest_1_5.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssignmentTest_1_5.java
@@ -42,7 +42,7 @@ protected Map getCompilerOptions() {
// TESTS_RANGE = new int[] { 11, -1 };
}
public static Test suite() {
- return buildMinimalComplianceTestSuite(testClass(), F_1_5);
+ return buildMinimalComplianceTestSuite(testClass(), FIRST_SUPPORTED_JAVA_VERSION);
}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=277450
public void test1() {
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssignmentTest_1_7.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssignmentTest_1_7.java
index a49aa3f0d1..d8b1b4bfbe 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssignmentTest_1_7.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AssignmentTest_1_7.java
@@ -42,7 +42,7 @@ protected Map getCompilerOptions() {
// TESTS_RANGE = new int[] { 11, -1 };
}
public static Test suite() {
- return buildMinimalComplianceTestSuite(testClass(), F_1_7);
+ return buildMinimalComplianceTestSuite(testClass(), FIRST_SUPPORTED_JAVA_VERSION);
}
/*
* no effect assignment bug
diff --git a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java
index 8ddea9a351..60aba90153 100644
--- a/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java
+++ b/jdt-patch/e433/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java
@@ -78,12 +78,12 @@ public BatchCompilerTest(String name) {
}
/**
* This test suite only needs to be run on one compliance.
- * As it includes some specific 1.5 tests, it must be used with a least a 1.5 VM
+ * As it includes some specific 1.8 tests, it must be used with a least a 1.8 VM
* and not be duplicated in general test suite.
* @see TestAll
*/
public static Test suite() {
- return buildMinimalComplianceTestSuite(testClass(), F_1_5);
+ return buildMinimalComplianceTestSuite(testClass(), FIRST_SUPPORTED_JAVA_VERSION);
}
public static Class testClass() {
return BatchCompilerTest.class;
@@ -307,8 +307,8 @@ else if (currentChar == '\n')
public void test001() {
- String commandLine = "-classpath \"D:/a folder\";d:/jdk1.4/jre/lib/rt.jar -1.4 -preserveAllLocals -g -verbose d:/eclipse/workspaces/development2.0/plugins/Bar/src2/ -d d:/test";
- String expected = " <-classpath> <-1.4> <-preserveAllLocals> <-g> <-verbose> <-d> ";
+ String commandLine = "-classpath \"D:/a folder\";d:/jdk1.8/jre/lib/rt.jar -1.8 -preserveAllLocals -g -verbose d:/eclipse/workspaces/development2.0/plugins/Bar/src2/ -d d:/test";
+ String expected = " <-classpath> <-1.8> <-preserveAllLocals> <-g> <-verbose> <-d> ";
String[] args = Main.tokenize(commandLine);
StringBuilder buffer = new StringBuilder(30);
@@ -421,7 +421,7 @@ public void test007(){
"}"
},
"\"" + OUTPUT_DIR + File.separator + "X.java\""
- + " -1.5 -g -preserveAllLocals"
+ + " -1.8 -g -preserveAllLocals"
+ " -bootclasspath " + getLibraryClassesAsQuotedString()
+ " -warn:+deprecation,syntheticAccess,uselessTypeCheck,unsafe,finalBound,unusedLocal"
+ " -verbose -proceedOnError -referenceInfo -d \"" + OUTPUT_DIR + "\"",
@@ -459,7 +459,7 @@ public void test008(){
"}"
},
"\"" + OUTPUT_DIR + File.separator + "X.java\""
- + " -1.5 -g -preserveAllLocals"
+ + " -1.8 -g -preserveAllLocals"
+ " -bootclasspath " + getLibraryClassesAsQuotedString()
+ " -warn:+deprecation,syntheticAccess,uselessTypeCheck,unsafe,finalBound,unusedLocal"
+ " -proceedOnError -referenceInfo -d \"" + OUTPUT_DIR + "\"",
@@ -509,7 +509,7 @@ public void test009(){
"}",
},
"\"" + OUTPUT_DIR + File.separator + "X.java\""
- + " -1.5 -g -preserveAllLocals"
+ + " -1.8 -g -preserveAllLocals"
+ " -cp \"" + OUTPUT_DIR + "[+OK2" + File.pathSeparator + "~Warn"
+ File.pathSeparator + "-KO]\""
+ " -warn:+deprecation,syntheticAccess,uselessTypeCheck,unsafe,finalBound,unusedLocal"
@@ -554,7 +554,7 @@ public void test010(){
"}"
},
"\"" + OUTPUT_DIR + File.separator + "X.java\""
- + " -1.5 -g -preserveAllLocals"
+ + " -1.8 -g -preserveAllLocals"
+ " -verbose -warn:+deprecation,syntheticAccess,uselessTypeCheck,unsafe,finalBound,unusedLocal"
+ " -proceedOnError -referenceInfo -d \"" + OUTPUT_DIR + "\"",
"[parsing ---OUTPUT_DIR_PLACEHOLDER---/X.java - #1/1]\n" +
@@ -580,7 +580,7 @@ public void test011_classpath(){
"}",
},
"\"" + OUTPUT_DIR + File.separator + "X.java\""
- + " -1.5 -g -preserveAllLocals"
+ + " -1.8 -g -preserveAllLocals"
+ " -cp \"" + OUTPUT_DIR + "[+**/OK2;~**/Warn;-KO]"
+ "\"" + File.pathSeparator
+ " -proceedOnError -referenceInfo -d \"" + OUTPUT_DIR + "\"",
@@ -666,16 +666,11 @@ public void test012(){
" resolved to be root modules\n" +
" --limit-modules (,)*\n" +
" specify the observable module names\n" +
- " --patch-modules =\n" +
+ " --patch-module =\n" +
" specify source locations for patching the given module\n" +
" --release compile for a specific VM version\n" +
" \n" +
" Compliance options:\n" +
- " -1.3 use 1.3 compliance (-source 1.3 -target 1.1)\n" +
- " -1.4 + use 1.4 compliance (-source 1.3 -target 1.2)\n" +
- " -1.5 -5 -5.0 use 1.5 compliance (-source 1.5 -target 1.5)\n" +
- " -1.6 -6 -6.0 use 1.6 compliance (-source 1.6 -target 1.6)\n" +
- " -1.7 -7 -7.0 use 1.7 compliance (-source 1.7 -target 1.7)\n" +
" -1.8 -8 -8.0 use 1.8 compliance (-source 1.8 -target 1.8)\n" +
" -1.9 -9 -9.0 use 1.9 compliance (-source 1.9 -target 1.9)\n" +
" -10 -10.0 use 10 compliance (-source 10 -target 10)\n" +
@@ -684,12 +679,10 @@ public void test012(){
" -13 -13.0 use 13 compliance (-source 13 -target 13)\n" +
" -14 -14.0 use 14 compliance (-source 14 -target 14)\n" +
getVersionOptions() +
- " -source set source level: 1.3 to 1.9, 10 to "+ CompilerOptions.getLatestVersion() +"\n" +
- " (or 6, 6.0, etc)\n" +
- " -target set classfile target: 1.3 to 1.9, 10 to "+ CompilerOptions.getLatestVersion() +"\n" +
- " (or 6, 6.0, etc)\n" +
- " cldc1.1 can also be used to generate the StackMap\n" +
- " attribute\n" +
+ " -source set source level: 1.8, 1.9, 10 to "+ CompilerOptions.getLatestVersion() +"\n" +
+ " (or 8, 8.0, etc)\n" +
+ " -target set classfile target: 1.8, 1.9, 10 to "+ CompilerOptions.getLatestVersion() +"\n" +
+ " (or 8, 8.0, etc)\n" +
" --enable-preview enable support for preview features of the\n" +
" latest Java release\n" +
" \n" +
@@ -732,7 +725,6 @@ public void test012(){
" -preserveAllLocals preserve unused local vars for debug purpose\n" +
" \n" +
" Annotation processing options:\n" +
- " These options are meaningful only in a 1.6 environment.\n" +
" -Akey[=value] options that are passed to annotation processors\n" +
" -processorpath \n" +
" specify locations where to find annotation processors.\n" +
@@ -769,7 +761,6 @@ public void test012(){
" -noExit do not call System.exit(n) at end of compilation (n==0\n" +
" if no error)\n" +
" -repeat repeat compilation process times for perf analysis\n" +
- " -inlineJSR inline JSR bytecode (implicit if target >= 1.5)\n" +
" -enableJavadoc consider references in javadoc\n" +
" -parameters generate method parameters attribute (for target >= 1.8)\n" +
" -genericsignature generate generic signature for lambda expressions\n" +
@@ -1001,7 +992,7 @@ public void test013() {
" Zork z;\n" +
"}", },
"\"" + OUTPUT_DIR + File.separator + "X.java\""
- + " -1.5 -proceedOnError"
+ + " -1.8 -proceedOnError"
+ " -log \"" + logFileName + "\" -d \"" + OUTPUT_DIR + "\"",
"",
"----------\n" +
@@ -1019,7 +1010,7 @@ public void test013() {
"\n" +
" \n" +
" \n" +
- " \n" +
+ " \n" +
" \n" +
" \n" +
" \n" +
@@ -1039,15 +1030,14 @@ public void test013() {
" \n" +
" \n" +
" \n" +
" \n" +
"