private void CheckNode(TagNode tn, DiagnosticEmitter e) { if (((IWikitextParsingInfo)tn).InferredClosingMark) { e.OpenTagNotClosed(tn.ToRange(), tn.Name); } var names = new HashSet <string>(); foreach (var attr in tn.Attributes) { if (attr.Name == null) { continue; } var name = attr.Name.ToString().Trim(); if (!names.Add(name)) { e.DuplicateTagAttribute(attr.ToRange(), name, tn.Name); } } }