anchor.diff:            }
             return RunResult.EXCEPTION;
           }
  -      }).whenComplete(() => context.dispose());
  +      });
     }
   
     void _printHelp(RootTaskContext ctx) {
  
positive.code:     return new RootTaskContext(colorEnabled);
    }
  
    Future<RunResult> _runTask(TaskContext context, String taskName) {
      final task = _state._getTask(taskName);
      assert(task != null);
  
      return task.run(context)
          .then((bool didComplete) {
  
negative.code:     final subArgs = _args.rest.getRange(1, _args.rest.length - 1);
      if(_state.hasTask(taskName)) {
        var subCtx = ctx.getSubContext(taskName, subArgs);
        final task = _state._getTask(taskName);
        return runTask(subCtx, task)
            .then((RunResult result) => _logExitCode(ctx, result))
            .whenComplete(() => subCtx.dispose());
      } else if(taskName == RAW_TASK_LIST_CMD) {
        _printRawTasks(ctx);
        return new Future.immediate(RunResult.SUCCESS);
  