public static IListSource <ILNode> GetTrailingTrivia(this ILNode node) { if (node is LNode) { VList <LNode> list = GetTrailingTrivia((LNode)node); if (list.IsEmpty) { return(EmptyList <ILNode> .Value); // avoid boxing in the common case } return(list.UpCast <LNode, ILNode>()); } else { VList <ILNode> list = VList <ILNode> .Empty; foreach (ILNode a in node.Attrs()) { if (a.Calls(S.TriviaTrailing)) { list.AddRange(a.Args()); } } if (list.IsEmpty) { return(EmptyList <ILNode> .Value); // avoid boxing in the common case } return(list); } }