code: public QueryContext with( Problems problems ) {
          return new QueryContext(context, repositoryCache, workspaceNames, overriddenNodeCachesByWorkspaceName, schemata,
                                  indexDefns, nodeTypes, bufferManager, hints, problems, variables);
      }
docs: Obtain a copy of this context, except that the copy uses the supplied problem container.
  
  @param problems the problems that should be used in the new context; may be null if a new problem container should be used
  @return the new context; never null