internal bool TryGetMethodSourceExtent(DocumentHandle documentHandle, MethodBodyHandle methodHandle, out int startLine, out int endLine) { MethodsInDocument methodsInDocument; if (!_methodsByDocument.TryGetValue(documentHandle, out methodsInDocument)) { startLine = endLine = 0; return(false); } int index = methodsInDocument.ExtentsByMethod.BinarySearch(methodHandle, (ext, handle) => HandleComparer.Default.Compare(ext.Method, handle)); if (index < 0) { startLine = endLine = 0; return(false); } var extent = methodsInDocument.ExtentsByMethod[index]; startLine = extent.MinLine; endLine = extent.MaxLine; return(true); }
public MethodLineExtent(MethodBodyHandle method, int minLine, int maxLine) { Method = method; MinLine = minLine; MaxLine = maxLine; }
internal static MethodDefinitionHandle ToMethodDefinitionHandle(this MethodBodyHandle handle) { return(MetadataTokens.MethodDefinitionHandle(MetadataTokens.GetRowNumber(handle))); }
internal SymMethod(SymReader symReader, MethodBodyHandle handle) { Debug.Assert(symReader != null); SymReader = symReader; BodyHandle = handle; }