anchor.diff:    List<String> get diagnostics;
   
     bool get compilationSkipped;
  -
  -  String get json;
   }
   
   class CommandOutputImpl extends UniqueObject implements CommandOutput {
  
positive.code:     Expectation outcome =
          exitCode == 0 ? Expectation.PASS : Expectation.COMPILETIME_ERROR;
      return _negateOutcomeIfNegativeTest(outcome, testCase.isNegative);
    }
  
    String get json {
      var map = {
      'stdout': stdout,
      'stderr': stderr,
      'exitCode': exitCode,
      'timedOut': timedOut,
      };
      return JSON.encode(map);
    }
  
    factory CompilationCommandOutputImpl.fromJson(Command command,
                                                  String json) {
      var obj = JSON.decode(json);
      for (var v in ['stdout', 'stderr', 'exitCode', 'timedOut']) {
        assert(obj.containsKey(v));
      }
      return new CompilationCommandOutputImpl(command,
                                              obj['exitCode'],
                                              obj['timedOut'],
                                              obj['stdout'],
                                              obj['stderr'],
                                              const Duration(seconds: 0),
                                              true);
                                              
    }
  }
  
  
negative.code:   }
  
    void _runCommand() {
      command.outputIsUpToDate.then((bool isUpToDate) {
        if (isUpToDate) {
          compilationSkipped = true;
          _commandComplete(0);
        } else {
          var processEnvironment = _createProcessEnvironment();
          Future processFuture =
  