private boolean callListener(Expression expression) { for (CombineListener combineListener : listeners) { if (combineListener.check(expression)) { if (nopolContext.isOnlyOneSynthesisResult()) { stop = true; } return true; } } return false; }
private boolean callListener(CtExpression expression) { for (CombineListenerSpoon combineListener : listeners) { if (combineListener.check(expression)) { if (nopolContext.isOnlyOneSynthesisResult()) { stop = true; } return true; } } return false; }
private boolean callListener(Expression expression) { for (CombineListener combineListener : listeners) { if (combineListener.check(expression)) { if (nopolContext.isOnlyOneSynthesisResult()) { stop = true; } return true; } } return false; }
private void solveWithMultipleBuild(Map<SourceLocation, List<TestResult>> testListPerStatement) { int n=0; if (testListPerStatement.size() == 0) { logger.debug("OOPS, no statement at all, no test results"); } for (SourceLocation sourceLocation : testListPerStatement.keySet()) { n++; List<TestResult> tests = testListPerStatement.get(sourceLocation); // no failing test case executes this location // so there is nothing to repair here if (getFailingTestCasesAsList(tests).size()==0) { continue; } logger.debug("statement #"+n); runOnStatement(sourceLocation, tests); if (nopolContext.isOnlyOneSynthesisResult() && !this.nopolResult.getPatches().isEmpty()) { return; } } }
private List<CtExpression> newCombiner(final List<CtExpression> toCombine, final List<Operator> operators) { final List<CtExpression> result = new ArrayList<>(); for (Operator operator : operators) { int nbExpression = operator.getTypeParameters().size(); CombinationSpoon combination = new CombinationSpoon(toCombine, operator, nbExpression, reifiedClasses); while (!combination.isEnd(this.stop)) { List<CtExpression> expressions = combination.perform(this.stop); CtExpression binaryExpression = create(operator, expressions, nopolContext); if (binaryExpression != null) add(result, binaryExpression); if (operator instanceof BinaryOperatorSpoon && !((BinaryOperatorSpoon) operator).isCommutative()) { // Modified: binaryExpression = create(operator, Arrays.asList(expressions.get(1), expressions.get(0)), nopolContext); if (binaryExpression != null) add(result, binaryExpression); } if (nopolContext.isOnlyOneSynthesisResult() || result.size() > max_number_combinations) { System.out.println("Arriving max number of combinations done."); this.stop = true; return result; } } } return result; }
if (callListener(binaryExpression)) { result.add(binaryExpression); if (nopolContext.isOnlyOneSynthesisResult() || result.size() > max_number_combinations) { return result; if (callListener(binaryExpression)) { result.add(binaryExpression); if (nopolContext.isOnlyOneSynthesisResult() || result.size() > max_number_combinations) { return result;
if (nopolContext.isOnlyOneSynthesisResult()) { printSummary(result); return result; combiner.combine(eexps, angelicValue, maxCombinerTime, nopolContext); if (result.size() > 0) { if (nopolContext.isOnlyOneSynthesisResult()) { printSummary(result); return result;
&& checkExpression(key, i, expression)) { result.add(expression); if (nopolContext.isOnlyOneSynthesisResult()) { return result;
if (callListener(binaryExpression) && nopolContext.isOnlyOneSynthesisResult()) { return result; if (callListener(binaryExpression) && nopolContext.isOnlyOneSynthesisResult()) { return result;
if (addExpressionIn(binaryExpression, result, false)) { if (callListener(binaryExpression)) { if (nopolContext.isOnlyOneSynthesisResult()) { return result; if (addExpressionIn(binaryExpression, result, false)) { if (callListener(binaryExpression)) { if (nopolContext.isOnlyOneSynthesisResult()) { return result;
private void runOnStatement(SourceLocation sourceLocation, List<TestResult> tests) { logger.debug("Analysing {} which is executed by {} tests", sourceLocation, tests.size()); SpoonedClass spoonCl = spooner.forked(sourceLocation.getRootClassName()); if (spoonCl == null || spoonCl.getSimpleType() == null) { logger.debug("cannot spoon "+sourceLocation.toString()); return; } System.out.println(spoonCl.getSimpleType().hashCode()); NopolProcessorBuilder builder = new NopolProcessorBuilder(spoonCl.getSimpleType().getPosition().getFile(), sourceLocation.getLineNumber(), nopolContext); // here, we only collect the processors to be applied later // this does not change the class itself spoonCl.process(builder); final List<NopolProcessor> nopolProcessors = builder.getNopolProcessors(); for (NopolProcessor nopolProcessor : nopolProcessors) { logger.debug("looking with "+nopolProcessor.getClass().toString()); SourcePosition position = nopolProcessor.getTarget().getPosition(); sourceLocation.setSourceStart(position.getSourceStart()); sourceLocation.setSourceEnd(position.getSourceEnd()); List<Patch> patches = executeNopolProcessor(tests, sourceLocation, spoonCl, nopolProcessor); this.nopolResult.addPatches(patches); if (nopolContext.isOnlyOneSynthesisResult() && !patches.isEmpty()) { return; } } }
private List<Expression> combineExpressionOperator(Expression expression, Expression expression1, BinaryOperator operator, Object value, List<Expression> result) { BinaryExpression binaryExpression = CombinationFactory.create(operator, expression, expression1, nopolContext); if (addExpressionIn(binaryExpression, result, value != null)) { //expression.getInExpressions().add(binaryExpression); if (!expression.sameExpression(expression1)) { //expression1.getInExpressions().add(binaryExpression); if (callListener(binaryExpression) && nopolContext.isOnlyOneSynthesisResult()) { return result; } } } if (!operator.isCommutative()) { binaryExpression = CombinationFactory.create(operator, expression1, expression, nopolContext); if (addExpressionIn(binaryExpression, result, value != null)) { //expression.getInExpressions().add(binaryExpression); if (!expression.sameExpression(expression1)) { //expression1.getInExpressions().add(binaryExpression); if (callListener(binaryExpression) && nopolContext.isOnlyOneSynthesisResult()) { return result; } } } } return null; }
if (addExpressionIn(unaryExpression, result, value != null)) { if (callListener(unaryExpression) && nopolContext.isOnlyOneSynthesisResult()) { return result;
if (addExpressionIn(unaryExpression, result, value != null)) { if (callListener(unaryExpression) && nopolContext.isOnlyOneSynthesisResult()) { return result;