From c863953d8035d5296615219c94874fdbe221862f Mon Sep 17 00:00:00 2001 From: Moritz Eysholdt Date: Fri, 15 May 2015 10:58:36 +0200 Subject: [PATCH] [466265|formatter] Precondition fails in textReplContext.withReplacer Signed-off-by: Moritz Eysholdt --- .../regionaccess/internal/AbstractHiddenRegion.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/AbstractHiddenRegion.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/AbstractHiddenRegion.java index e8c60d6d0..d34394a91 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/AbstractHiddenRegion.java +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/regionaccess/internal/AbstractHiddenRegion.java @@ -54,19 +54,20 @@ public abstract class AbstractHiddenRegion extends AbstractTextSegment implement result.add(part); } else { int mergedLength = last.getLength() + part.getLength(); - result.add(new TextSegment(part.getTextRegionAccess(), last.getOffset(), mergedLength)); + result.set(result.size() - 1, new TextSegment(access, last.getOffset(), mergedLength)); } } else if (part instanceof IComment) { if (last == null || last instanceof IComment) { - result.add(new TextSegment(part.getTextRegionAccess(), part.getOffset(), 0)); + result.add(new TextSegment(access, part.getOffset(), 0)); } if (includeComments) result.add(part); } - last = part; + if (!result.isEmpty()) + last = result.get(result.size() - 1); } if (last instanceof IComment) { - result.add(new TextSegment(last.getTextRegionAccess(), last.getOffset() + last.getLength(), 0)); + result.add(new TextSegment(access, last.getOffset() + last.getLength(), 0)); } return ImmutableList.copyOf(result); }