test24701.cs(7,15): error CS0659: 'Data' overrides Object.Equals(object o) but does not override Object.GetHashCode() [F:\workspace\_work\1\s\src\coreclr\tests\src\Regressions\coreclr\GitHub_24701\test24701.csproj]
##[error]test24701.cs(7,15): error CS0659: 'Data' overrides Object.Equals(object o) but does not override Object.GetHashCode()
I believe due to https://github.com/dotnet/runtime/pull/34155 changing warnings to errors. Previously, this was a warning:
test24701.cs(7,15): warning CS0659: 'Data' overrides Object.Equals(object o) but does not override Object.GetHashCode() [F:\workspace\_work\1\s\src\coreclr\tests\src\Regressions\coreclr\GitHub_24701\test24701.csproj]
##[warning]test24701.cs(7,15): warning CS0659: (NETCORE_ENGINEERING_TELEMETRY=) 'Data' overrides Object.Equals(object o) but does not override Object.GetHashCode()
@jaredpar
@BruceForstall how can I build this configuration locally so I can test out my fix?
You can build all pri-1 tests with:
src\coreclr\build-test.cmd -priority=1
Or to build just this one test, something like:
F:\gh\runtime\src\coreclr\tests\src\Regressions\coreclr\GitHub_24701>dotnet msbuild /p:__BuildOS=Windows_NT /p:__BuildArch=x64 /p:__BuildType=Checked test24701.csproj
@BruceForstall
Where in the build is the failure happening? I looked at that build and all the generated console logs from helix. Saw some JIT test failures but no obvious build issues. Big logs so could've looked past it.
Also is the preference to fix the warning (add correct override) or leave test as is and suppress the warning here because the structure of the code is meaningful?
This is failing in all the Pri1 test builds, e.g., the "CoreCLR Pri1 Test Build Windows_NT x64 checked" job, in the "Build managed test components" section. Don't need to go to the Helix logs.
I don't know about this test in particular. Looks like @fadimounir created it last year. Generally, I'd advise fixing the code, but maybe Fadi can advise.
To fix it ASAP, though, I wouldn't wait for more advice: do what you think is best.
@BruceForstall you listed two builds here. I only see build errors in one:
Not being pedantic here. Just making sure I fix all the issues.
Sorry for beraking this. Didn't realize there was an extra build here or I'd have run the pipeline at PR time.
Yeah, I was pointing out that before it was a warning, after it was an error.
btw, in the error case (after your change), I notice this isn't the only error. I also see (at the bottom of the build log):
EXEC : error : Layout specified for auto-layout class [F:\workspace\_work\1\s\src\coreclr\tests\src\Loader\classloader\rmv\il\RMV-2-8-20-one.ilproj]
EXEC : error : Undefined implementation in ExportedType 'ABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFG' -- ExportType not emitted [F:\workspace\_work\1\s\src\coreclr\tests\src\Loader\classloader\rmv\il\RMV-2-5-5-two.ilproj]
EXEC : error : Undefined implementation in ExportedType 'ABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFG' -- ExportType not emitted [F:\workspace\_work\1\s\src\coreclr\tests\src\Loader\classloader\rmv\il\RMV-2-5-5-two.ilproj]
EXEC : error : Undefined implementation in ExportedType 'ABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFG' -- ExportType not emitted [F:\workspace\_work\1\s\src\coreclr\tests\src\Loader\classloader\rmv\il\RMV-2-5-5-two.ilproj]
EXEC : error : Undefined implementation in ExportedType 'ABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFG' -- ExportType not emitted [F:\workspace\_work\1\s\src\coreclr\tests\src\Loader\classloader\rmv\il\RMV-2-5-5-two.ilproj]
EXEC : error : Undefined implementation in ExportedType 'ABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFG' -- ExportType not emitted [F:\workspace\_work\1\s\src\coreclr\tests\src\Loader\classloader\rmv\il\RMV-2-5-5-two.ilproj]
byrefs.il(82): error : Non-sealed value class, made sealed [F:\workspace\_work\1\s\src\coreclr\tests\src\reflection\ldtoken\byrefs.ilproj]
byrefs.il(82): error : Non-sealed value class, made sealed [F:\workspace\_work\1\s\src\coreclr\tests\src\reflection\ldtoken\byrefs.ilproj]
byrefs.il(82): error : Non-sealed value class, made sealed [F:\workspace\_work\1\s\src\coreclr\tests\src\reflection\ldtoken\byrefs.ilproj]
byrefs.il(82): error : Non-sealed value class, made sealed [F:\workspace\_work\1\s\src\coreclr\tests\src\reflection\ldtoken\byrefs.ilproj]
byrefs.il(82): error : Non-sealed value class, made sealed [F:\workspace\_work\1\s\src\coreclr\tests\src\reflection\ldtoken\byrefs.ilproj]
byrefs.il(87): error : Non-sealed value class, made sealed [F:\workspace\_work\1\s\src\coreclr\tests\src\reflection\ldtoken\byrefs.ilproj]
byrefs.il(87): error : Non-sealed value class, made sealed [F:\workspace\_work\1\s\src\coreclr\tests\src\reflection\ldtoken\byrefs.ilproj]
byrefs.il(87): error : Non-sealed value class, made sealed [F:\workspace\_work\1\s\src\coreclr\tests\src\reflection\ldtoken\byrefs.ilproj]
byrefs.il(87): error : Non-sealed value class, made sealed [F:\workspace\_work\1\s\src\coreclr\tests\src\reflection\ldtoken\byrefs.ilproj]
byrefs.il(87): error : Non-sealed value class, made sealed [F:\workspace\_work\1\s\src\coreclr\tests\src\reflection\ldtoken\byrefs.ilproj]
F:\workspace\_work\1\s\src\coreclr\tests\dir.traversal.targets(25,5): error : (No message specified) [F:\workspace\_work\1\s\src\coreclr\tests\src\dirs.proj]
F:\workspace\_work\1\s\src\coreclr\tests\dir.traversal.targets(25,5): error : (No message specified) [F:\workspace\_work\1\s\src\coreclr\tests\build.proj]
@jaredpar @BruceForstall the test failing to build is aimed at testing some corner case issue with instantiating stubs on arm, where we had a bug with the calling convention.
The test cares about a .Equals() override on the struct, to compare expected vs actual return values. The error here seems to be caused by the fact that we cannot override .Equals() without overriding .GetHashCode(). I don't know if this is a regression in the Roslyn compiler, or if this is something called out in the specs, but previous versions of the Roslyn compiler were not enforcing it.
If the correct expectation is to not let users write C# structs, and override the .Equals without overriding the .GetHashCode, then i can make a change to the test and fix it.
Please let me know what the correct expected compiler behavior is.
@jaredpar I did a quick check in VS. The error seen in the CI is actually a warning in previous versions of Roslyn (CS0659). Is the change from warning to error intentional or a regression?
@fadimounir no. I flipped the "warn as error" switch in mSBuild and it promoted the warning to error. Have a PR out to undo it.