public void EndNode(AstNode node) { if (nodeStack.Pop() != node) { throw new InvalidOperationException(); } if (!(node.Annotation <MethodDebugInfoBuilder>() is null)) { Debug2.Assert(!(currentMethodDebugInfoBuilder is null)); if (context.CalculateILSpans) { foreach (var ns in context.UsingNamespaces) { currentMethodDebugInfoBuilder.Scope.Imports.Add(ImportInfo.CreateNamespace(ns)); } } output.AddDebugInfo(currentMethodDebugInfoBuilder.Create()); currentMethodDebugInfoBuilder = parentMethodDebugInfoBuilder.Pop(); } var mms = node.Annotation <List <Tuple <MethodDebugInfoBuilder, List <ILSpan> > > >(); if (!(mms is null)) { Debug.Assert(mms == multiMappings); if (mms == multiMappings) { foreach (var mm in mms) { output.AddDebugInfo(mm.Item1.Create()); } multiMappings = null; } } }