protected List<List<Statement>> buildStatements(InputContext inputContext) { return coverageBycodeFragments .keySet() .stream() .map( cf -> { List<Statement> list = new ArrayList<>(2); list.add(cf.clone()); return list; }) .flatMap( list -> { InputContext cloneInputContext = inputContext.clone(); return buildContext(cloneInputContext, list, list.size() - 1).stream(); }) .collect(Collectors.toList()); }