### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: model/org/eclipse/jdt/internal/core/CompilationUnitProblemFinder.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/CompilationUnitProblemFinder.java,v retrieving revision 1.67 diff -u -r1.67 CompilationUnitProblemFinder.java --- model/org/eclipse/jdt/internal/core/CompilationUnitProblemFinder.java 4 May 2010 14:04:56 -0000 1.67 +++ model/org/eclipse/jdt/internal/core/CompilationUnitProblemFinder.java 17 Aug 2010 08:10:32 -0000 @@ -96,20 +96,33 @@ CompilationResult result = new CompilationResult(sourceTypes[0].getFileName(), 1, 1, this.options.maxProblemsPerUnit); + + // https://bugs.eclipse.org/bugs/show_bug.cgi?id=305259 + long currentSourceLevel = this.options.sourceLevel; + long currentComplianceLevel = this.options.complianceLevel; + + try { + IJavaProject project = ((SourceTypeElementInfo) sourceTypes[0]).getHandle().getJavaProject(); + this.options.sourceLevel = CompilerOptions.versionToJdkLevel(project.getOption(JavaCore.COMPILER_SOURCE, true)); + this.options.complianceLevel = CompilerOptions.versionToJdkLevel(project.getOption(JavaCore.COMPILER_COMPLIANCE, true)); + + // need to hold onto this + CompilationUnitDeclaration unit = + SourceTypeConverter.buildCompilationUnit( + sourceTypes,//sourceTypes[0] is always toplevel here + SourceTypeConverter.FIELD_AND_METHOD // need field and methods + | SourceTypeConverter.MEMBER_TYPE // need member types + | SourceTypeConverter.FIELD_INITIALIZATION, // need field initialization + this.lookupEnvironment.problemReporter, + result); - // need to hold onto this - CompilationUnitDeclaration unit = - SourceTypeConverter.buildCompilationUnit( - sourceTypes,//sourceTypes[0] is always toplevel here - SourceTypeConverter.FIELD_AND_METHOD // need field and methods - | SourceTypeConverter.MEMBER_TYPE // need member types - | SourceTypeConverter.FIELD_INITIALIZATION, // need field initialization - this.lookupEnvironment.problemReporter, - result); - - if (unit != null) { - this.lookupEnvironment.buildTypeBindings(unit, accessRestriction); - this.lookupEnvironment.completeTypeBindings(unit); + if (unit != null) { + this.lookupEnvironment.buildTypeBindings(unit, accessRestriction); + this.lookupEnvironment.completeTypeBindings(unit); + } + } finally { + this.options.sourceLevel = currentSourceLevel; + this.options.complianceLevel = currentComplianceLevel; } }