Alto falante:
using System;
struct StructWithDoubleField
{
public double value;
}
class My {
static void Main() {
StructWithDoubleField s1;
s1.value = 0.0;
StructWithDoubleField s2;
s2.value = -0.0;
Console.WriteLine(s1.GetHashCode() == s2.GetHashCode() ? "PASSED" : "FAILED");
}
}
A implementação padrão GetHashCode
para structs deveria ter sido throw new NotSupportedException("Tomato!");
:grin:
https://github.com/dotnet/coreclr/pull/13164 perdeu este caso.
@jkotas qual é o processo para solicitar a portabilidade de pelo menos a parte do campo object
da correção para uma versão de patch? Dados os bugs downstream relatados pelo cliente, como aspnet/Mvc#7673, parece que precisamos disso pelo menos na versão 2.0.x.
/cc @davidfowl @Eilon @Petermarcu
Comentários muito úteis
A implementação padrão
GetHashCode
para structs deveria ter sidothrow new NotSupportedException("Tomato!");
:grin: