Here is an extract of IH5Object:
/// <summary>
/// Checks if the attribute with the specified <paramref name="name"/> exist.
/// </summary>
/// <param name="name">The name of the attribute.</param>
/// <returns>A boolean which indicates if the attribute exists.</returns>
IH5Attribute Attribute(string name);
/// <summary>
/// Checks if the attribute with the specified <paramref name="name"/> exist.
/// </summary>
/// <param name="name">The name of the attribute.</param>
/// <param name="cancellationToken">A token to cancel the current operation.</param>
/// <returns>A boolean which indicates if the attribute exists.</returns>
Task<IH5Attribute> AttributeAsync(string name, CancellationToken cancellationToken = default);
/// <summary>
/// Gets the attribute named <paramref name="name"/>.
/// </summary>
/// <param name="name">The name of the attribute.</param>
/// <returns>The requested attribute.</returns>
bool AttributeExists(string name);
/// <summary>
/// Gets the attribute named <paramref name="name"/>.
/// </summary>
/// <param name="name">The name of the attribute.</param>
/// <param name="cancellationToken">A token to cancel the current operation.</param>
/// <returns>The requested attribute.</returns>
Task<bool> AttributeExistsAsync(string name, CancellationToken cancellationToken = default);
It's obvious that the XML documentation has been swapped between Attribute(string) and AttrbuteExists(string), as well as between AttributeAsync(string) and AttrbuteExistsAsync(string).
Here is an extract of
IH5Object:It's obvious that the XML documentation has been swapped between
Attribute(string)andAttrbuteExists(string), as well as betweenAttributeAsync(string)andAttrbuteExistsAsync(string).