C # 7.3 Restrição de enum: por que não consigo usar a palavra-chave enum?

Para restringir um parâmetro de tipo genérico a ser de um tipo enum, eu os restringi anteriormente desta forma, o melhor que eu poderia usar para restringir o tipo T para enumerações no pré-C # 7.3:

void DoSomething<T>() where T : struct, IComparable, IConvertible, IFormattable

Agora, o C # 7.3 adiciona um novo recurso para restringir um tipo genérico aSystem.Enum. Eu tentei usar a restrição enum com oAtualização do VS2017 15.7 lançada hojee é compilado com êxito quando o escrevo assim (dado que tenho umusing System; directiva):

void DoSomething<T>() where T : Enum

No entanto, usando oenum A palavra-chave não funciona e faz com que o compilador lance os seguintes erros (há mais erros a seguir, esperando um corpo de método, mas não vale a pena mencionar aqui, acho):

void DoSomething<T>() where T : enum
                                ^ error CS1031: Type expected
                                  error CS1002: ; expected
                                    ^ error CS1001: Identifier expected
                                      error CS1514: { expected
                                      error CS1513: } expected

Como existe umastruct restrição trabalhando para estruturas, eu não entendo por queenum não funciona aqui para enumerações. É verdade queenum não mapeia para um tipo real comoint faria porInt32, mas achei que deveria se comportar da mesma maneira que ostruct restrição.

Acabei de cair em uma armadilha experimental de recursos que ainda não estava totalmente implementada ou isso foi feito de propósito na especificação (por quê?)?

questionAnswers(1)

yourAnswerToTheQuestion