| ReducePatternDetector |  | 1% |  | 0% | 88 | 89 | 217 | 223 | 13 | 14 | 0 | 1 |
| PreconditionsChecker |   | 29% |   | 11% | 118 | 127 | 168 | 241 | 37 | 46 | 0 | 1 |
| ASTStreamRenderer |   | 65% |   | 57% | 39 | 87 | 123 | 362 | 5 | 29 | 0 | 1 |
| IfStatementAnalyzer |  | 2% |  | 0% | 74 | 75 | 144 | 149 | 21 | 22 | 0 | 1 |
| LoopBodyParser |   | 31% |   | 16% | 69 | 75 | 119 | 179 | 6 | 11 | 0 | 1 |
| PipelineAssembler |   | 34% |   | 26% | 39 | 52 | 83 | 132 | 12 | 22 | 0 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |  | 2% |  | 0% | 29 | 31 | 82 | 84 | 9 | 11 | 0 | 1 |
| ProspectiveOperation |   | 39% |   | 18% | 43 | 61 | 71 | 141 | 11 | 28 | 0 | 1 |
| JdtLoopExtractor |   | 86% |   | 70% | 103 | 236 | 67 | 480 | 1 | 33 | 0 | 1 |
| Refactorer |  | 0% |  | 0% | 24 | 24 | 61 | 61 | 5 | 5 | 1 | 1 |
| StreamPipelineBuilder |   | 62% |   | 38% | 50 | 69 | 48 | 123 | 8 | 19 | 0 | 1 |
| ReducerType |   | 46% |   | 10% | 32 | 37 | 43 | 82 | 10 | 14 | 0 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |  | 4% |  | 0% | 13 | 15 | 45 | 47 | 4 | 6 | 0 | 1 |
| ASTIteratorWhileRenderer |   | 69% |   | 43% | 8 | 18 | 28 | 98 | 2 | 10 | 0 | 1 |
| TraditionalForHandler |   | 74% |   | 49% | 46 | 70 | 43 | 163 | 1 | 14 | 0 | 1 |
| LambdaGenerator |   | 38% |   | 44% | 9 | 16 | 29 | 51 | 3 | 7 | 0 | 1 |
| StreamConcatRefactorer |   | 83% |   | 56% | 29 | 42 | 32 | 134 | 1 | 10 | 0 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |   | 46% |   | 20% | 11 | 15 | 17 | 33 | 1 | 5 | 0 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |  | 12% |  | 12% | 5 | 7 | 20 | 23 | 1 | 3 | 0 | 1 |
| OperationType.new OperationType() {...} |   | 24% |  | 20% | 5 | 7 | 12 | 16 | 0 | 2 | 0 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |  | 16% |  | 10% | 6 | 8 | 14 | 16 | 1 | 3 | 0 | 1 |
| SideEffectChecker |   | 57% |   | 40% | 13 | 20 | 15 | 36 | 0 | 4 | 0 | 1 |
| EnhancedForHandler |   | 94% |   | 69% | 35 | 73 | 17 | 191 | 1 | 15 | 0 | 1 |
| ExpressionHelper |   | 86% |   | 56% | 17 | 31 | 12 | 72 | 0 | 9 | 0 | 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 |
| IteratorPatternDetector |   | 87% |   | 60% | 18 | 31 | 17 | 73 | 0 | 8 | 0 | 1 |
| ProspectiveOperation.new ASTVisitor() {...} |   | 68% |   | 60% | 8 | 16 | 7 | 26 | 0 | 2 | 0 | 1 |
| LoopBodyScopeScanner |   | 82% |   | 54% | 9 | 18 | 6 | 33 | 2 | 7 | 0 | 1 |
| CollectPatternDetector |   | 90% |   | 53% | 15 | 28 | 11 | 72 | 1 | 13 | 0 | 1 |
| OperationType.LambdaBodyContext |  | 34% | | 0% | 3 | 4 | 5 | 6 | 2 | 3 | 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 |
| CollectorType |   | 81% |   | 50% | 8 | 14 | 6 | 27 | 2 | 6 | 0 | 1 |
| ReducerType.MapExpressionContext |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| FunctionalHolder |  | 0% | | n/a | 5 | 5 | 8 | 8 | 5 | 5 | 1 | 1 |
| IteratorLoopAnalyzer.IteratorUsageVisitor |  | 81% |  | 83% | 6 | 14 | 7 | 28 | 5 | 8 | 0 | 1 |
| OperationType |  | 89% | | n/a | 3 | 7 | 4 | 28 | 3 | 7 | 0 | 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 |
| IteratorWhileHandler |  | 94% |   | 56% | 7 | 15 | 6 | 53 | 1 | 7 | 0 | 1 |
| CollectPatternDetector.new ASTVisitor() {...} |  | 85% |   | 66% | 4 | 9 | 2 | 17 | 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 |
| ASTEnhancedForRenderer |  | 94% |  | 70% | 3 | 10 | 1 | 36 | 0 | 5 | 0 | 1 |
| IteratorLoopAnalyzer |  | 86% |  | 87% | 1 | 6 | 2 | 16 | 0 | 2 | 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 |
| ConsecutiveLoopGroupDetector |  | 95% |  | 92% | 3 | 17 | 2 | 51 | 1 | 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 |
| IteratorWhileHandler.new ASTVisitor() {...} |  | 95% |  | 78% | 3 | 10 | 3 | 30 | 0 | 3 | 0 | 1 |
| IteratorWhileToEnhancedFor.new ASTVisitor() {...} |  | 93% |  | 62% | 3 | 6 | 3 | 21 | 0 | 2 | 0 | 1 |
| ReducerType.new ReducerType() {...} | | 50% | | n/a | 2 | 3 | 2 | 3 | 2 | 3 | 0 | 1 |
| ConsecutiveLoopGroupDetector.ConsecutiveLoopGroup |  | 84% | | n/a | 1 | 4 | 1 | 7 | 1 | 4 | 0 | 1 |
| OperationType.new OperationType() {...} | | 66% | | n/a | 2 | 3 | 2 | 3 | 2 | 3 | 0 | 1 |
| JdtLoopExtractor.LoopBodyAnalyzer |  | 97% |  | 100% | 1 | 25 | 1 | 44 | 1 | 20 | 0 | 1 |
| StatementParsingContext |  | 96% | | n/a | 1 | 15 | 1 | 41 | 1 | 15 | 0 | 1 |
| ReducerType.new ReducerType() {...} | | 84% | | 100% | 1 | 4 | 1 | 5 | 1 | 3 | 0 | 1 |
| StatementHandlerContext | | 80% | | n/a | 1 | 3 | 1 | 6 | 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 |
| StatementHandlerType |  | 97% | | 75% | 1 | 4 | 1 | 15 | 0 | 2 | 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 |
| StreamOperationDetector |  | 92% |  | 66% | 2 | 4 | 1 | 7 | 0 | 1 | 0 | 1 |
| OperationType.new OperationType() {...} | | 83% | | n/a | 1 | 3 | 1 | 3 | 1 | 3 | 0 | 1 |
| CollectionModificationDetector |  | 100% |  | 87% | 3 | 15 | 0 | 38 | 0 | 3 | 0 | 1 |
| LoopTargetFormat |  | 100% |  | 100% | 0 | 7 | 0 | 17 | 0 | 4 | 0 | 1 |
| ConcurrentCollectionDetector |  | 100% |  | 100% | 0 | 5 | 0 | 22 | 0 | 3 | 0 | 1 |
| EnhancedForHandler.new ASTVisitor() {...} |  | 100% |  | 100% | 0 | 4 | 0 | 7 | 0 | 2 | 0 | 1 |
| TraditionalForHandler.new ASTVisitor() {...} |  | 100% |  | 100% | 0 | 4 | 0 | 11 | 0 | 2 | 0 | 1 |
| IfStatementAnalyzer.MatchPatternType |  | 100% | | n/a | 0 | 1 | 0 | 9 | 0 | 1 | 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 |
| 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 |
| 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 |