/// <summary>
 /// Allocates a range of source text that corresponds to a source line.
 /// </summary>
 internal PdbSourceLineLocation(PdbSourceDocument primarySourceDocument, int startLine, int startColumn, int endLine, int endColumn)
 {
     this.primarySourceDocument = primarySourceDocument;
       this.startLine = startLine;
       this.startColumn = startColumn;
       this.endLine = endLine;
       this.endColumn = endColumn;
 }
 private PdbSourceDocument GetPrimarySourceDocumentFor(PdbSource pdbSourceFile)
 {
     PdbSourceDocument/*?*/ result = null;
       if (this.documentCache.TryGetValue(pdbSourceFile, out result)) return result;
       IName name = this.host.NameTable.GetNameFor(Path.GetFileName(pdbSourceFile.name));
       if (File.Exists(pdbSourceFile.name)) {
     var sourceFileReader = new StreamReader(pdbSourceFile.name);
     this.sourceFilesOpenedByReader.Add(sourceFileReader);
     result = new PdbSourceDocument(name, pdbSourceFile, sourceFileReader);
       } else
     result = new PdbSourceDocument(name, pdbSourceFile);
       this.documentCache.Add(pdbSourceFile, result);
       return result;
 }