Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #17447 -MethodAccessException on equality comparison of a record with private fields #17467

Merged
merged 2 commits into from
Jul 31, 2024

Conversation

KevinRansom
Copy link
Member

@KevinRansom KevinRansom commented Jul 30, 2024

Fixes: #17447

The generation of Augmented Equals methods, were created with an incorrect visibility. It should have restricted the visibility to match the type that contained the method. Instead it set the visibility to match the scope of the field.
I.e private.

This meant that the compiler generated it:

.method assembly hidebysig instance bool Equals (class Module1/Value obj, class [mscorlib]System.Collections.IEqualityComparer comp) cil managed 

However, because the type is: 'class Module1/Value' it should be marked public

.method public hidebysig  instance bool Equals (class Module1/Value obj, class [mscorlib]System.Collections.IEqualityComparer comp) cil managed 

@KevinRansom KevinRansom requested a review from a team as a code owner July 30, 2024 21:46
Copy link
Contributor

github-actions bot commented Jul 30, 2024

❗ Release notes required


✅ Found changes and release notes in following paths:

Change path Release notes path Description
src/Compiler docs/release-notes/.FSharp.Compiler.Service/9.0.100.md

@psfinaki psfinaki enabled auto-merge (squash) July 31, 2024 11:24
@psfinaki psfinaki merged commit 44e7bfa into dotnet:main Jul 31, 2024
30 checks passed
KevinRansom added a commit to KevinRansom/fsharp that referenced this pull request Sep 24, 2024
… record with private fields (dotnet#17467)

* Fix17447

* tests + readme
vzarytovskii added a commit that referenced this pull request Oct 7, 2024
* Update azure-pipelines.yml

* Refactor CE checking (#17464) (#17493)

Co-authored-by: Vlad Zarytovskii <vzaritovsky@hotmail.com>
Co-authored-by: vzarytovskii <1260985+vzarytovskii@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update azure-pipelines.yml

* Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2524346 (#17610)

* Fixes #17447 -MethodAccessException on equality comparison of a record with private fields (#17467)

* Fix17447

* tests + readme

* fixes #17541 - Equals visibility for DU's (#17548)

* update version number

* Switch to new VMR control set (#17703) (port from main) (#17788)

* Now that fsharp is on 9.0, we can switch to the new control set. Generally:
- DotNetBuildFromSource -> DotNetBuildSourceOnly - Building a source-only build.
- DotnetBuildFromSourceFlavor == Product -> DotNetBuildOrchestrator == true - Building in the VMR, could be source-only or MS's build.
- ArcadeBuildFromSource -> DotNetBuildRepo == true -> Indicates an outer repo build.
- ExcludeFromSourceBuild -> ExcludeFromSourceOnlyBuild

* Split out source build args

* Split out source build args

* Remove unnecessary source build env var set

* Add properties to the bootstrap compiler build

* BuildRepo -> BuildInnerRepo

* Only build proto repo in inner build

* Additional VMR properties for completeness

* Rename sourcebuild.props -> dotnetbuild.props

---------

Co-authored-by: Petr <psfinaki@users.noreply.github.com>

* respect generic arity in method uniqueness

* [17.12] Turn off realsig when building product and proto (#17808)

* Bugfix : make sure nullness does not break XmlDoc info import for methods and types (#17741)

* Remove nullness signal in string-based type encoding of a symbol (since it is used for xmldoc lookup)

* release notes

* Discard unused values

* Rendering AllowsRefStruct for type parameters (#17706)

* Update azure-pipelines.yml

---------

Co-authored-by: Vlad Zarytovskii <vzaritovsky@hotmail.com>
Co-authored-by: Petr <psfinaki@users.noreply.github.com>
Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com>
Co-authored-by: Kevin Ransom (msft) <codecutter@hotmail.com>
Co-authored-by: vzarytovskii <1260985+vzarytovskii@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kevin Ransom <kevinr@microsoft.com>
Co-authored-by: Matt Mitchell <mmitche@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

MethodAccessException on equality comparison of a record with private fields
3 participants