Return type of ValueTuple.Create with 8 arguments is rendered incorrectly
Type of issue
Other (describe below)
Description
At https://learn.microsoft.com/en-us/dotnet/api/system.valuetuple.create?view=net-9.0#system-valuetuple-create-8(-0-1-2-3-4-5-6-7), the method signature is rendered as:
public static(T1, T2, T3, T4, T5, T6, T7,(T8)) Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8);
The return type should not have parentheses around T8:
public static(T1, T2, T3, T4, T5, T6, T7, T8) Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8);
According to C# 7 §8.3.11, (T1, T2, T3, T4, T5, T6, T7, T8) means ValueTuple<T1, T2, T3, T4, T5, T6, T7, ValueTuple<T8>>. This is the actual return type of the eight-parameter ValueTuple.Create method. In this type, the outer structure is ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>, whose TRest type parameter requires a tuple type.
(T1, T2, T3, T4, T5, T6, T7, (T8)) means ValueTuple<T1, T2, T3, T4, T5, T6, T7, ValueTuple<ValueTuple<T8>>>. That is not what ValueTuple.Create returns.
In the following member signatures, C# is wrong, but the others are correct because they use generic type syntax rather than tuple type syntax: https://github.com/dotnet/dotnet-api-docs/blob/9ba1f1b43dfb2b9bc49eb84a2023b1b1ca0c82df/xml/System/ValueTuple.xml#L953-L959
Page URL
https://learn.microsoft.com/en-us/dotnet/api/system.valuetuple.create?view=net-9.0#system-valuetuple-create-8(-0-1-2-3-4-5-6-7)
Content source URL
https://github.com/dotnet/dotnet-api-docs/blob/main/xml/System/ValueTuple.xml
Document Version Independent Id
ba9ac4e4-a738-7a26-4841-113a47f798b8
Platform Id
32cda35d-8dc0-8c5a-710e-541512f6cd40
Article author
@dotnet-bot