anchor.diff:      logs.add(log);
     }
   
  -  Result<O> toNegativeTestResult() {
  -    Expectation outcome = this.outcome;
  -    if (outcome == Expectation.PASS) {
  -      outcome = Expectation.FAIL;
  -    } else if (outcome == Expectation.FAIL) {
  -      outcome = Expectation.PASS;
  -    }
  +  Result<O> copyWithOutcome(Expectation outcome) {
       return new Result<O>(output, outcome, error, trace)
           ..logs.addAll(logs);
     }
  
positive.code:             } else if (result.outcome == Expectation.FAIL) {
                result.addLog("Negative test reported an error as expeceted.\n");
              }
              result = result.toNegativeTestResult();
            }
            if (!expectedOutcomes.contains(result.outcome)) {
              result.addLog("$sb");
  
negative.code:           }
            if (description.multitestExpectations != null) {
              if (isError(description.multitestExpectations)) {
                result = toNegativeTestResult(
                    result, description.multitestExpectations);
              }
            } else if (lastStep == lastStepRun &&
                description.shortName.endsWith("negative_test")) {
  