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;
                }
            }
        }