private static void ProcessMsgRef(IInlineExpression self, TextWriter writer, Scope scope, MessageReference msgRef) { var id = msgRef.Id; var attribute = msgRef.Attribute; if (scope.Bundle.TryGetAstMessage(id.Name.ToString(), out var msg)) { if (attribute != null) { var found = msg.Attributes.Find(e => e.Id.Equals(attribute)); if (found != null) { scope.Track(writer, found.Value, self); } else { scope.WriteRefError(writer, self); return; } } else { if (msg.Value != null) { scope.Track(writer, msg.Value, self); } else { scope.AddError(ResolverFluentError.NoValue(id.Name)); writer.Write('{'); self.WriteError(writer); writer.Write('}'); } } } else { scope.WriteRefError(writer, self); } }