| 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 |   | 70% |   | 67% | 39 | 109 | 117 | 418 | 4 | 37 | 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 |
| ASTIteratorWhileRenderer |   | 42% |   | 42% | 17 | 27 | 97 | 162 | 9 | 13 | 0 | 1 |
| ProspectiveOperation |   | 18% |  | 1% | 50 | 61 | 106 | 141 | 17 | 28 | 0 | 1 |
| EnhancedForHandler |   | 60% |   | 48% | 63 | 93 | 96 | 242 | 8 | 19 | 0 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |  | 0% |  | 0% | 31 | 31 | 84 | 84 | 11 | 11 | 1 | 1 |
| JdtLoopExtractor |   | 86% |   | 69% | 125 | 277 | 83 | 562 | 1 | 38 | 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 |
| ASTEnhancedForRenderer |   | 51% |   | 45% | 10 | 17 | 32 | 60 | 4 | 7 | 0 | 1 |
| TraditionalForHandler |   | 75% |   | 50% | 44 | 70 | 41 | 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 |
| ExpressionHelper |   | 49% |   | 53% | 10 | 21 | 19 | 38 | 3 | 7 | 0 | 1 |
| IteratorLoopAnalyzer |   | 64% |   | 43% | 22 | 33 | 17 | 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 |
| SafeEnhancedForHandler |   | 93% |   | 72% | 47 | 111 | 25 | 251 | 0 | 22 | 0 | 1 |
| CollectionModificationDetector |   | 85% |   | 69% | 23 | 53 | 14 | 93 | 0 | 11 | 0 | 1 |
| StatementHandlerType.new StatementHandlerType() {...} |  | 0% |  | 0% | 8 | 8 | 16 | 16 | 3 | 3 | 1 | 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 |
| JdtStreamExtractor |   | 95% |   | 72% | 63 | 136 | 10 | 177 | 0 | 16 | 0 | 1 |
| IteratorLoopAnalyzer.IteratorUsageVisitor |   | 78% |   | 57% | 16 | 34 | 11 | 55 | 3 | 15 | 0 | 1 |
| IfStatementAnalyzer.MatchPatternType |  | 0% | | n/a | 1 | 1 | 9 | 9 | 1 | 1 | 1 | 1 |
| EnhancedForHandler.new ASTVisitor() {...} |  | 0% |  | 0% | 5 | 5 | 7 | 7 | 2 | 2 | 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 |
| IteratorPatternDetector |   | 86% |   | 65% | 17 | 31 | 17 | 73 | 1 | 8 | 0 | 1 |
| OperationType.LambdaBodyContext |  | 0% | | 0% | 4 | 4 | 6 | 6 | 3 | 3 | 1 | 1 |
| ASTImperativeLoopRenderer |   | 96% |   | 92% | 5 | 44 | 6 | 149 | 0 | 9 | 0 | 1 |
| ConcreteCollectionFactory |   | 91% |   | 64% | 30 | 50 | 13 | 84 | 0 | 8 | 0 | 1 |
| IteratorWhileHandler |   | 95% |   | 70% | 29 | 60 | 15 | 138 | 1 | 11 | 0 | 1 |
| StreamOperationDetector |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 | 1 | 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 |
| LoopConversionInspection |  | 91% |   | 72% | 6 | 20 | 1 | 34 | 0 | 9 | 0 | 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 |
| JdtStreamExtractor.new ASTVisitor() {...} |  | 79% |   | 56% | 5 | 10 | 3 | 12 | 0 | 2 | 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 |
| IteratorLoopBindings |  | 97% |   | 67% | 24 | 42 | 0 | 35 | 0 | 5 | 0 | 1 |
| StatementParsingContext |  | 90% | | n/a | 3 | 15 | 3 | 41 | 3 | 15 | 0 | 1 |
| IteratorWhileToEnhancedFor |  | 93% |   | 58% | 5 | 10 | 2 | 23 | 1 | 4 | 0 | 1 |
| JdtStreamContext |  | 86% | | n/a | 1 | 6 | 2 | 9 | 1 | 6 | 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 |
| EnhancedForToIteratorWhile |  | 95% |   | 59% | 9 | 18 | 4 | 39 | 1 | 7 | 0 | 1 |
| LambdaCaptureSafety.new ASTVisitor() {...} |  | 91% |  | 93% | 1 | 10 | 2 | 15 | 0 | 2 | 0 | 1 |
| StreamToEnhancedFor | | 72% | | 0% | 2 | 5 | 3 | 8 | 1 | 4 | 0 | 1 |
| StreamToIteratorWhile | | 72% | | 0% | 2 | 5 | 3 | 8 | 1 | 4 | 0 | 1 |
| LoopConversionService |  | 98% |   | 83% | 9 | 38 | 1 | 43 | 0 | 11 | 0 | 1 |
| ReducerType.new ReducerType() {...} | | 50% | | n/a | 2 | 3 | 2 | 3 | 2 | 3 | 0 | 1 |
| IteratorWhileHandler.new ASTVisitor() {...} |  | 97% |  | 78% | 3 | 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 |
| IteratorWhileToEnhancedFor.new ASTVisitor() {...} |  | 97% |  | 87% | 1 | 8 | 0 | 13 | 0 | 4 | 0 | 1 |
| LoopBodyScopeScanner.new ASTVisitor() {...} |  | 97% |  | 92% | 1 | 13 | 0 | 20 | 0 | 6 | 0 | 1 |
| StreamForEachConverter.new ASTVisitor() {...} |  | 96% |  | 87% | 1 | 6 | 1 | 14 | 0 | 2 | 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 |
| JdtStreamExtractor.new ASTVisitor() {...} |  | 92% | | 50% | 3 | 6 | 0 | 5 | 0 | 3 | 0 | 1 |
| IteratorImportCleanup |  | 99% |   | 81% | 7 | 20 | 1 | 36 | 0 | 1 | 0 | 1 |
| LoopConversionService.Analysis |  | 98% |  | 66% | 2 | 8 | 0 | 14 | 0 | 5 | 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 | 9 | 0 | 21 | 0 | 4 | 0 | 1 |
| LoopVariableNames |  | 100% |  | 100% | 0 | 7 | 0 | 17 | 0 | 5 | 0 | 1 |
| TraditionalForHandler.new ASTVisitor() {...} |  | 100% |  | 100% | 0 | 4 | 0 | 11 | 0 | 2 | 0 | 1 |
| StreamForEachConverter |  | 100% | | 75% | 1 | 4 | 0 | 10 | 0 | 2 | 0 | 1 |
| ASTImperativeLoopRenderer.new ASTVisitor() {...} |  | 100% |  | 100% | 0 | 4 | 0 | 5 | 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 |
| LoopConversionService.Analysis.new CompilationUnitRewriteOperationsFixCore() {...} |  | 100% | | n/a | 0 | 2 | 0 | 4 | 0 | 2 | 0 | 1 |
| ASTStreamRenderer.new ASTVisitor() {...} |  | 100% |  | 100% | 0 | 4 | 0 | 4 | 0 | 2 | 0 | 1 |
| IteratorLoopBindings.new ASTVisitor() {...} |  | 100% | | 100% | 0 | 4 | 0 | 4 | 0 | 3 | 0 | 1 |
| LoopVariableNames.Scope |  | 100% | | n/a | 0 | 2 | 0 | 9 | 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 |
| LoopConversionInspection.new DefaultProblem() {...} | | 100% | | n/a | 0 | 3 | 0 | 3 | 0 | 3 | 0 | 1 |
| JdtStreamExtractor.new ASTVisitor() {...} | | 100% | | n/a | 0 | 2 | 0 | 3 | 0 | 2 | 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 |
| JdtLoopExtractor.ExtractedLoop | | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 | 0 | 1 |
| JdtStreamExtractor.ExtractedStream | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| IteratorLoopBindings.References | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| AbstractFunctionalCall | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |