diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/text/folding/DefaultJavaFoldingStructureProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/text/folding/DefaultJavaFoldingStructureProvider.java index 096a6823913..e6b70810aa4 100755 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/text/folding/DefaultJavaFoldingStructureProvider.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/text/folding/DefaultJavaFoldingStructureProvider.java @@ -960,29 +960,19 @@ private void computeFoldingStructure(FoldingStructureComputationContext ctx) { private void computeFoldingStructureOfControlStatements(String source, FoldingStructureComputationContext ctx) { IScanner scanner = ctx.getScanner(); scanner.setSource(source.toCharArray()); - - int token; Stack blockStarts = new Stack<>(); - + int token; try { while ((token = scanner.getNextToken()) != ITerminalSymbols.TokenNameEOF) { switch (token) { - case ITerminalSymbols.TokenNameif: - case ITerminalSymbols.TokenNamewhile: - case ITerminalSymbols.TokenNamefor: - case ITerminalSymbols.TokenNameswitch: - case ITerminalSymbols.TokenNamedo: - blockStarts.push(scanner.getCurrentTokenStartPosition()); - break; + case ITerminalSymbols.TokenNameLBRACE: - if (!blockStarts.isEmpty()) { - blockStarts.push(scanner.getCurrentTokenStartPosition()); - } + blockStarts.push(scanner.getCurrentTokenStartPosition()); break; case ITerminalSymbols.TokenNameRBRACE: if (!blockStarts.isEmpty()) { int start = blockStarts.pop(); - if (!blockStarts.isEmpty() && source.charAt(start) == '{') { + if (source.charAt(start) == '{') { IRegion region = new Region(start + 1, scanner.getCurrentTokenEndPosition() - start); IRegion normalized = alignRegion(region, ctx); if (normalized != null) {