View | Details | Raw Unified | Return to bug 110270 | Differences between
and this patch

Collapse All | Expand All

(-)ASTParser.java (-3 / +19 lines)
Lines 72-77 Link Here
72
 * @since 3.0
72
 * @since 3.0
73
 */
73
 */
74
public class ASTParser {
74
public class ASTParser {
75
	private static final int[] EMPTY_LINE_ENDS = new int[0];
75
76
76
	/**
77
	/**
77
	 * Kind constant used to request that the source be parsed
78
	 * Kind constant used to request that the source be parsed
Lines 920-926 Link Here
920
				if (comments != null) {
921
				if (comments != null) {
921
					converter.buildCommentsTable(compilationUnit, comments);
922
					converter.buildCommentsTable(compilationUnit, comments);
922
				}
923
				}
923
				compilationUnit.setLineEndTable(recordedParsingInformation.lineEnds);
924
				int[] lineEnds = recordedParsingInformation.lineEnds;
925
				if (lineEnds == null) {
926
					compilationUnit.setLineEndTable(EMPTY_LINE_ENDS);
927
				} else {
928
					compilationUnit.setLineEndTable(lineEnds);
929
				}
924
				if (constructorDeclaration != null) {
930
				if (constructorDeclaration != null) {
925
					Block block = ast.newBlock();
931
					Block block = ast.newBlock();
926
					Statement[] statements = constructorDeclaration.statements;
932
					Statement[] statements = constructorDeclaration.statements;
Lines 954-960 Link Here
954
				if (comments != null) {
960
				if (comments != null) {
955
					converter.buildCommentsTable(compilationUnit, comments);
961
					converter.buildCommentsTable(compilationUnit, comments);
956
				}
962
				}
957
				compilationUnit.setLineEndTable(recordedParsingInformation.lineEnds);
963
				lineEnds = recordedParsingInformation.lineEnds;
964
				if (lineEnds == null) {
965
					compilationUnit.setLineEndTable(EMPTY_LINE_ENDS);
966
				} else {
967
					compilationUnit.setLineEndTable(lineEnds);
968
				}
958
				if (expression != null) {
969
				if (expression != null) {
959
					Expression expression2 = converter.convert(expression);
970
					Expression expression2 = converter.convert(expression);
960
					rootNodeToCompilationUnit(expression2.getAST(), compilationUnit, expression2, codeSnippetParsingUtil.recordedParsingInformation);
971
					rootNodeToCompilationUnit(expression2.getAST(), compilationUnit, expression2, codeSnippetParsingUtil.recordedParsingInformation);
Lines 977-983 Link Here
977
				if (comments != null) {
988
				if (comments != null) {
978
					converter.buildCommentsTable(compilationUnit, comments);
989
					converter.buildCommentsTable(compilationUnit, comments);
979
				}
990
				}
980
				compilationUnit.setLineEndTable(recordedParsingInformation.lineEnds);
991
				lineEnds = recordedParsingInformation.lineEnds;
992
				if (lineEnds == null) {
993
					compilationUnit.setLineEndTable(EMPTY_LINE_ENDS);
994
				} else {
995
					compilationUnit.setLineEndTable(lineEnds);
996
				}
981
				if (nodes != null) {
997
				if (nodes != null) {
982
					TypeDeclaration typeDeclaration = converter.convert(nodes);
998
					TypeDeclaration typeDeclaration = converter.convert(nodes);
983
					rootNodeToCompilationUnit(typeDeclaration.getAST(), compilationUnit, typeDeclaration, codeSnippetParsingUtil.recordedParsingInformation);
999
					rootNodeToCompilationUnit(typeDeclaration.getAST(), compilationUnit, typeDeclaration, codeSnippetParsingUtil.recordedParsingInformation);
(-)CompilationUnitResolver.java (-2 / +13 lines)
Lines 58-63 Link Here
58
import org.eclipse.jdt.internal.core.util.DOMFinder;
58
import org.eclipse.jdt.internal.core.util.DOMFinder;
59
59
60
class CompilationUnitResolver extends Compiler {
60
class CompilationUnitResolver extends Compiler {
61
	private static final int[] EMPTY_LINE_ENDS = new int[0];
61
	
62
	
62
	/* A list of int */
63
	/* A list of int */
63
	static class IntArrayList {
64
	static class IntArrayList {
Lines 249-255 Link Here
249
		ast.setBindingResolver(resolver);
250
		ast.setBindingResolver(resolver);
250
		converter.setAST(ast);
251
		converter.setAST(ast);
251
		compilationUnit = converter.convert(compilationUnitDeclaration, source);
252
		compilationUnit = converter.convert(compilationUnitDeclaration, source);
252
		compilationUnit.setLineEndTable(compilationUnitDeclaration.compilationResult.lineSeparatorPositions);
253
		final int[] lineEnds = compilationUnitDeclaration.compilationResult.lineSeparatorPositions;
254
		if (lineEnds == null) {
255
			compilationUnit.setLineEndTable(EMPTY_LINE_ENDS);
256
		} else {
257
			compilationUnit.setLineEndTable(lineEnds);
258
		}
253
		ast.setDefaultNodeFlag(0);
259
		ast.setDefaultNodeFlag(0);
254
		ast.setOriginalModificationCount(ast.modificationCount());
260
		ast.setOriginalModificationCount(ast.modificationCount());
255
		return compilationUnit;
261
		return compilationUnit;
Lines 683-689 Link Here
683
							converter.setAST(ast);
689
							converter.setAST(ast);
684
							CompilationUnit compilationUnit = converter.convert(unit, contents);
690
							CompilationUnit compilationUnit = converter.convert(unit, contents);
685
							compilationUnit.setJavaElement(source);
691
							compilationUnit.setJavaElement(source);
686
							compilationUnit.setLineEndTable(compilationResult.lineSeparatorPositions);
692
							final int[] lineEnds = compilationResult.lineSeparatorPositions;
693
							if (lineEnds == null) {
694
								compilationUnit.setLineEndTable(EMPTY_LINE_ENDS);
695
							} else {
696
								compilationUnit.setLineEndTable(lineEnds);
697
							}
687
							ast.setDefaultNodeFlag(0);
698
							ast.setDefaultNodeFlag(0);
688
							ast.setOriginalModificationCount(ast.modificationCount());
699
							ast.setOriginalModificationCount(ast.modificationCount());
689
							
700
							
(-)AST.java (-1 / +8 lines)
Lines 93-98 Link Here
93
 * @since 2.0
93
 * @since 2.0
94
 */
94
 */
95
public final class AST {
95
public final class AST {
96
	private static final int[] EMPTY_LINE_ENDS = new int[0];
97
96
	/**
98
	/**
97
	 * Constant for indicating the AST API that handles JLS2.
99
	 * Constant for indicating the AST API that handles JLS2.
98
	 * This API is capable of handling all constructs
100
	 * This API is capable of handling all constructs
Lines 268-274 Link Here
268
		converter.setAST(ast);
270
		converter.setAST(ast);
269
	
271
	
270
		CompilationUnit unit = converter.convert(compilationUnitDeclaration, source);
272
		CompilationUnit unit = converter.convert(compilationUnitDeclaration, source);
271
		unit.setLineEndTable(compilationUnitDeclaration.compilationResult.lineSeparatorPositions);
273
		final int[] lineEnds = compilationUnitDeclaration.compilationResult.lineSeparatorPositions;
274
		if (lineEnds == null) {
275
			unit.setLineEndTable(EMPTY_LINE_ENDS);
276
		} else {
277
			unit.setLineEndTable(lineEnds);
278
		}
272
		unit.setJavaElement(workingCopy);
279
		unit.setJavaElement(workingCopy);
273
		ast.setDefaultNodeFlag(savedDefaultNodeFlag);
280
		ast.setDefaultNodeFlag(savedDefaultNodeFlag);
274
		return unit;
281
		return unit;

Return to bug 110270