public void Track(TextWriter writer, Pattern pattern, IInlineExpression exp) { if (_travelled.Contains(pattern)) { AddError(ResolverFluentError.Cyclic(pattern)); writer.Write('{'); exp.WriteError(writer); writer.Write('}'); } else { _travelled.Add(pattern); pattern.Write(writer, this); PopTraveled(); } }