提交 29969836 编写于 作者: N Nick Guerrera 提交者: Tomas Matousek

Adapt to Enumerator -> Enumerable S.R.Metadata API change

上级 2aa9cb09
......@@ -49,12 +49,9 @@ public static void Main()
var name = mdReader.GetString(method.Name);
var spReader = methodDebugInfo.GetSequencePointEnumerator();
TextWriter writer = new StringWriter();
while (spReader.MoveNext())
foreach (var sp in methodDebugInfo.GetSequencePoints())
{
var sp = spReader.Current;
if (sp.IsHidden)
{
writer.WriteLine($"{sp.Offset}: <hidden>");
......
......@@ -177,28 +177,27 @@ private static ImmutableArray<ImmutableArray<MethodLineExtent>> PartitionToNonOv
{
continue;
}
// sequence points:
var spReader = methodBody.GetSequencePointEnumerator();
DocumentHandle currentDocument = methodBody.Document;
int minLine = int.MaxValue;
int maxLine = int.MinValue;
while (spReader.MoveNext())
foreach (var sequencePoint in methodBody.GetSequencePoints())
{
if (spReader.Current.IsHidden)
if (sequencePoint.IsHidden)
{
continue;
}
int startLine = spReader.Current.StartLine;
int endLine = spReader.Current.EndLine;
int startLine = sequencePoint.StartLine;
int endLine = sequencePoint.EndLine;
if (spReader.Current.Document != currentDocument)
if (sequencePoint.Document != currentDocument)
{
yield return KeyValuePair.Create(currentDocument, new MethodLineExtent(methodDebugHandle, minLine, maxLine));
currentDocument = spReader.Current.Document;
currentDocument = sequencePoint.Document;
minLine = startLine;
maxLine = endLine;
}
......
......@@ -50,16 +50,14 @@ public int FindClosestLine(int line, out int closestLine)
// enumerate method sequence points:
var body = mdReader.GetMethodDebugInformation(extent.Method);
var spReader = body.GetSequencePointEnumerator();
while (spReader.MoveNext())
foreach (var sequencePoint in body.GetSequencePoints())
{
if (spReader.Current.IsHidden || spReader.Current.Document != Handle)
if (sequencePoint.IsHidden || sequencePoint.Document != Handle)
{
continue;
}
int startLine = spReader.Current.StartLine;
int startLine = sequencePoint.StartLine;
if (startLine >= line && startLine < result)
{
result = startLine;
......
......@@ -33,9 +33,9 @@ internal SymMethod(SymReader symReader, MethodDebugInformationHandle handle)
DebugHandle = handle;
}
private SequencePointEnumerator GetSequencePointEnumerator()
private SequencePointCollection.Enumerator GetSequencePointEnumerator()
{
return SymReader.MetadataReader.GetMethodDebugInformation(DebugHandle).GetSequencePointEnumerator();
return SymReader.MetadataReader.GetMethodDebugInformation(DebugHandle).GetSequencePoints().GetEnumerator();
}
private RootScopeData GetRootScopeData()
......
......@@ -545,15 +545,13 @@ private string FormatImports(ImportScope scope)
var sb = new StringBuilder();
var importsReader = scope.GetImportDefinitionEnumerator();
while (importsReader.MoveNext())
foreach (var import in scope.GetImports())
{
if (sb.Length > 0)
{
sb.Append(", ");
}
var import = importsReader.Current;
switch (import.Kind)
{
case ImportDefinitionKind.ImportNamespace:
......@@ -1517,11 +1515,10 @@ private void WriteMethodBody()
try
{
var spReader = entry.GetSequencePointEnumerator();
while (spReader.MoveNext())
foreach (var sequencePoint in entry.GetSequencePoints())
{
_writer.Write(" ");
_writer.WriteLine(SequencePoint(spReader.Current));
_writer.WriteLine(sequencePoint);
}
}
catch (BadImageFormatException)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册