You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the C# 7.x draft, §C.3 (Standard Library Types not defined in ISO/IEC 23271), AsyncMethodBuilderAttribute has AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface | AttributeTargets.Delegate | AttributeTargets.Enum | AttributeTargets.Method. Of these, AttributeTargets.Method is not needed for C# 7.3 and instead corresponds to a C# 10 feature.
Example
This should not be allowed in a C# 7.3 implementation without extensions.
- `Task` and `Task<T>` are classified as task types despite not
specifying builder types
- Interfaces are allowed to be task types
- Enums and methods are prohibited from being decorated with
AsyncMethodBuilderAttribute
- Task types must not be generic in more than one type parameter
(including in terms of containing types)
Discussion required for all of this, but if merged, would
fixdotnet#854, dotnet#856, dotnet#858 and dotnet#859.
* Clarify task types
- `Task` and `Task<T>` are classified as task types despite not
specifying builder types
- Interfaces are allowed to be task types
- Enums and methods are prohibited from being decorated with
AsyncMethodBuilderAttribute
- Task types must not be generic in more than one type parameter
(including in terms of containing types)
Discussion required for all of this, but if merged, would
fix#854, #856, #858 and #859.
* Prevent nesting within generic types, for task types.
This wording follows the wording in 15.15.2 for task builders.
Describe the bug
In the C# 7.x draft, §C.3 (Standard Library Types not defined in ISO/IEC 23271), AsyncMethodBuilderAttribute has
AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface | AttributeTargets.Delegate | AttributeTargets.Enum | AttributeTargets.Method
. Of these, AttributeTargets.Method is not needed for C# 7.3 and instead corresponds to a C# 10 feature.Example
This should not be allowed in a C# 7.3 implementation without extensions.
Expected behavior
In §C.3, remove AttributeTargets.Method from AsyncMethodBuilderAttribute.
Additional context
The C# 7.0 Async Task Types in C# proposal does not mention AttributeTargets.
dotnet/runtime#50116 added AttributeTargets.Method to AsyncMethodBuilderAttribute, for the C# 10 AsyncMethodBuilder override proposal dotnet/csharplang#1407.
The text was updated successfully, but these errors were encountered: