| PreconditionsChecker |  | 0% |  | 0% | 119 | 119 | 230 | 230 | 46 | 46 | 1 | 1 |
| ReducePatternDetector |  | 0% |  | 0% | 89 | 89 | 223 | 223 | 14 | 14 | 1 | 1 |
| LoopBodyParser |  | 0% |  | 0% | 75 | 75 | 179 | 179 | 11 | 11 | 1 | 1 |
| ASTStreamRenderer |   | 65% |   | 57% | 39 | 87 | 123 | 362 | 5 | 29 | 0 | 1 |
| PipelineAssembler |  | 0% |  | 0% | 52 | 52 | 132 | 132 | 22 | 22 | 1 | 1 |
| StreamPipelineBuilder |  | 0% |  | 0% | 69 | 69 | 123 | 123 | 19 | 19 | 1 | 1 |
| StreamConcatRefactorer |  | 0% |  | 0% | 42 | 42 | 134 | 134 | 10 | 10 | 1 | 1 |
| IfStatementAnalyzer |  | 0% |  | 0% | 75 | 75 | 149 | 149 | 22 | 22 | 1 | 1 |
| ProspectiveOperation |   | 18% |  | 1% | 50 | 61 | 106 | 141 | 17 | 28 | 0 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |  | 0% |  | 0% | 31 | 31 | 84 | 84 | 11 | 11 | 1 | 1 |
| JdtLoopExtractor |   | 86% |   | 69% | 127 | 277 | 83 | 562 | 1 | 38 | 0 | 1 |
| EnhancedForHandler |   | 62% |   | 47% | 52 | 76 | 77 | 203 | 7 | 15 | 0 | 1 |
| Refactorer |  | 0% |  | 0% | 24 | 24 | 61 | 61 | 5 | 5 | 1 | 1 |
| CollectPatternDetector |   | 23% |   | 26% | 23 | 28 | 55 | 72 | 11 | 13 | 0 | 1 |
| ReducerType |   | 46% |   | 10% | 32 | 37 | 43 | 82 | 10 | 14 | 0 | 1 |
| ConsecutiveLoopGroupDetector |  | 0% |  | 0% | 17 | 17 | 51 | 51 | 3 | 3 | 1 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |  | 0% |  | 0% | 15 | 15 | 47 | 47 | 6 | 6 | 1 | 1 |
| ASTIteratorWhileRenderer |   | 69% |   | 43% | 8 | 18 | 28 | 98 | 2 | 10 | 0 | 1 |
| TraditionalForHandler |   | 74% |   | 49% | 46 | 70 | 43 | 163 | 1 | 14 | 0 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |  | 0% |  | 0% | 15 | 15 | 33 | 33 | 5 | 5 | 1 | 1 |
| LambdaGenerator |   | 38% |   | 44% | 9 | 16 | 29 | 51 | 3 | 7 | 0 | 1 |
| IteratorLoopAnalyzer |   | 60% |   | 41% | 23 | 33 | 19 | 52 | 0 | 3 | 0 | 1 |
| StatementHandlerType |  | 0% |  | 0% | 4 | 4 | 15 | 15 | 2 | 2 | 1 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |  | 0% |  | 0% | 7 | 7 | 23 | 23 | 3 | 3 | 1 | 1 |
| ProspectiveOperation.new ASTVisitor() {...} |   | 34% |   | 21% | 14 | 16 | 16 | 26 | 0 | 2 | 0 | 1 |
| OperationType.new OperationType() {...} |  | 10% |  | 0% | 6 | 7 | 15 | 16 | 1 | 2 | 0 | 1 |
| CollectPatternDetector.new ASTVisitor() {...} |  | 0% |  | 0% | 9 | 9 | 17 | 17 | 3 | 3 | 1 | 1 |
| ExpressionHelper |   | 79% |   | 52% | 19 | 31 | 16 | 72 | 1 | 9 | 0 | 1 |
| CollectionModificationDetector |   | 85% |   | 67% | 24 | 53 | 14 | 93 | 0 | 11 | 0 | 1 |
| IteratorLoopAnalyzer.IteratorUsageVisitor |   | 70% |   | 52% | 20 | 34 | 17 | 55 | 6 | 15 | 0 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |  | 0% |  | 0% | 8 | 8 | 16 | 16 | 3 | 3 | 1 | 1 |
| SafeEnhancedForHandler |   | 93% |   | 73% | 40 | 98 | 22 | 219 | 0 | 19 | 0 | 1 |
| EnhancedForHandler.new ASTVisitor() {...} |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 2 | 2 | 1 | 1 |
| SideEffectChecker |   | 57% |   | 40% | 13 | 20 | 15 | 36 | 0 | 4 | 0 | 1 |
| IfStatementAnalyzer.MatchPatternType |  | 0% | | n/a | 1 | 1 | 9 | 9 | 1 | 1 | 1 | 1 |
| IteratorLoopBodyParser |   | 73% |   | 50% | 10 | 14 | 12 | 33 | 1 | 4 | 0 | 1 |
| OperationType.new OperationType() {...} |  | 17% |  | 0% | 5 | 6 | 10 | 11 | 1 | 2 | 0 | 1 |
| OperationType.LambdaBodyContext |  | 0% | | 0% | 4 | 4 | 6 | 6 | 3 | 3 | 1 | 1 |
| IteratorPatternDetector |   | 88% |   | 63% | 17 | 31 | 16 | 73 | 0 | 8 | 0 | 1 |
| IteratorWhileHandler |   | 94% |   | 67% | 27 | 53 | 16 | 127 | 1 | 11 | 0 | 1 |
| ConcreteCollectionFactory |   | 91% |   | 64% | 30 | 50 | 13 | 84 | 0 | 8 | 0 | 1 |
| LoopBodyScopeScanner |   | 82% |   | 54% | 9 | 18 | 6 | 33 | 2 | 7 | 0 | 1 |
| ConsecutiveLoopGroupDetector.ConsecutiveLoopGroup |  | 0% | | n/a | 4 | 4 | 7 | 7 | 4 | 4 | 1 | 1 |
| CollectorType |   | 75% |  | 81% | 6 | 14 | 7 | 27 | 3 | 6 | 0 | 1 |
| TraditionalForHandler.new ASTVisitor() {...} |  | 30% | | n/a | 3 | 4 | 6 | 7 | 3 | 4 | 0 | 1 |
| PreconditionsChecker.new ASTVisitor() {...} |  | 0% | | 0% | 3 | 3 | 4 | 4 | 2 | 2 | 1 | 1 |
| ReducerType.MapExpressionContext | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| OperationType |  | 88% | | n/a | 4 | 7 | 5 | 28 | 4 | 7 | 0 | 1 |
| FunctionalHolder | | 0% | | n/a | 5 | 5 | 8 | 8 | 5 | 5 | 1 | 1 |
| LambdaCaptureSafety.new ASTVisitor() {...} | | 51% | | 25% | 3 | 5 | 4 | 7 | 1 | 3 | 0 | 1 |
| StatementHandlerContext | | 0% | | n/a | 3 | 3 | 6 | 6 | 3 | 3 | 1 | 1 |
| IteratorWhileToEnhancedFor |  | 92% |   | 50% | 9 | 15 | 6 | 44 | 1 | 6 | 0 | 1 |
| ReducerType.new ReducerType() {...} | | 29% | | n/a | 3 | 4 | 3 | 4 | 3 | 4 | 0 | 1 |
| LambdaCaptureSafety |  | 90% |   | 64% | 5 | 10 | 5 | 26 | 0 | 3 | 0 | 1 |
| OperationType.new OperationType() {...} | | 44% | | 0% | 2 | 3 | 3 | 4 | 1 | 2 | 0 | 1 |
| OperationType.new OperationType() {...} | | 44% | | 0% | 2 | 3 | 3 | 4 | 1 | 2 | 0 | 1 |
| OperationType.new OperationType() {...} | | 44% | | 0% | 2 | 3 | 3 | 4 | 1 | 2 | 0 | 1 |
| OperationType.new OperationType() {...} | | 44% | | 0% | 2 | 3 | 3 | 4 | 1 | 2 | 0 | 1 |
| EnhancedForToIteratorWhile |  | 92% |  | 37% | 5 | 11 | 5 | 33 | 1 | 7 | 0 | 1 |
| StatementParsingContext |  | 90% | | n/a | 3 | 15 | 3 | 41 | 3 | 15 | 0 | 1 |
| ASTEnhancedForRenderer |  | 94% |  | 70% | 3 | 10 | 1 | 36 | 0 | 5 | 0 | 1 |
| ReducerType.new ReducerType() {...} | | 55% | | n/a | 2 | 4 | 2 | 4 | 2 | 4 | 0 | 1 |
| ReducerType.new ReducerType() {...} | | 38% | | n/a | 2 | 3 | 2 | 3 | 2 | 3 | 0 | 1 |
| ReducerType.new ReducerType() {...} | | 38% | | n/a | 2 | 3 | 2 | 3 | 2 | 3 | 0 | 1 |
| StreamToIteratorWhile |  | 84% | | 25% | 3 | 6 | 4 | 13 | 1 | 4 | 0 | 1 |
| StreamToEnhancedFor |  | 82% | | 25% | 3 | 6 | 4 | 12 | 1 | 4 | 0 | 1 |
| IteratorWhileToEnhancedFor.new ASTVisitor() {...} |  | 93% |  | 62% | 3 | 6 | 3 | 21 | 0 | 2 | 0 | 1 |
| LambdaCaptureSafety.new ASTVisitor() {...} |  | 91% |  | 93% | 1 | 10 | 2 | 15 | 0 | 2 | 0 | 1 |
| ReducerType.new ReducerType() {...} | | 50% | | n/a | 2 | 3 | 2 | 3 | 2 | 3 | 0 | 1 |
| IteratorWhileHandler.new ASTVisitor() {...} |  | 97% |   | 71% | 4 | 10 | 2 | 24 | 0 | 3 | 0 | 1 |
| OperationType.new OperationType() {...} | | 66% | | n/a | 2 | 3 | 2 | 3 | 2 | 3 | 0 | 1 |
| OperationType.new OperationType() {...} | | 66% | | n/a | 2 | 3 | 2 | 3 | 2 | 3 | 0 | 1 |
| JdtLoopExtractor.LoopBodyAnalyzer |  | 97% |  | 90% | 2 | 24 | 1 | 44 | 1 | 19 | 0 | 1 |
| ReducerType.new ReducerType() {...} | | 84% | | 100% | 1 | 4 | 1 | 5 | 1 | 3 | 0 | 1 |
| ReducerType.new ReducerType() {...} | | 76% | | n/a | 1 | 3 | 1 | 3 | 1 | 3 | 0 | 1 |
| ReducerType.new ReducerType() {...} | | 75% | | n/a | 1 | 3 | 1 | 3 | 1 | 3 | 0 | 1 |
| LoopBodyScopeScanner.new ASTVisitor() {...} |  | 97% |  | 92% | 1 | 13 | 0 | 20 | 0 | 6 | 0 | 1 |
| LoopBodyScopeScanner.new ASTVisitor() {...} |  | 95% | | 50% | 1 | 8 | 0 | 11 | 0 | 7 | 0 | 1 |
| JdtLoopExtractor.new ASTVisitor() {...} |  | 94% |  | 66% | 2 | 5 | 1 | 8 | 0 | 2 | 0 | 1 |
| StreamOperationDetector |  | 92% |  | 66% | 2 | 4 | 1 | 7 | 0 | 1 | 0 | 1 |
| ConcurrentCollectionDetector |  | 100% |  | 87% | 2 | 13 | 0 | 21 | 0 | 5 | 0 | 1 |
| ConcreteCollectionASTStreamRenderer |  | 100% |  | 100% | 0 | 4 | 0 | 21 | 0 | 2 | 0 | 1 |
| LoopTargetFormat |  | 100% |  | 100% | 0 | 7 | 0 | 17 | 0 | 4 | 0 | 1 |
| TraditionalForHandler.new ASTVisitor() {...} |  | 100% |  | 100% | 0 | 4 | 0 | 11 | 0 | 2 | 0 | 1 |
| ConcreteCollectionFactory.new ASTVisitor() {...} |  | 100% |  | 100% | 0 | 5 | 0 | 7 | 0 | 2 | 0 | 1 |
| IteratorLoopAnalyzer.SafetyAnalysis |  | 100% | | n/a | 0 | 3 | 0 | 3 | 0 | 3 | 0 | 1 |
| LoopBodyParser.ParseResult |  | 100% | | n/a | 0 | 7 | 0 | 13 | 0 | 7 | 0 | 1 |
| LambdaCaptureSafety.new ASTVisitor() {...} |  | 100% |  | 83% | 1 | 5 | 0 | 7 | 0 | 2 | 0 | 1 |
| TraditionalForHandler.new ASTVisitor() {...} |  | 100% | | 100% | 0 | 3 | 0 | 5 | 0 | 2 | 0 | 1 |
| IteratorPatternDetector.IteratorPattern | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| TraditionalForHandler.ForLoopPattern | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| IteratorLoopBodyParser.ParsedBody | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| IteratorWhileHandler.IteratorConversion | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| ExpressionHelper.ForEachRewriteInfo | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| JdtLoopExtractor.ExtractedLoop | | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 | 0 | 1 |
| AbstractFunctionalCall | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |