Skip to content

Exclude superclass-generated names in class placeholders#4902

Merged
crtschin merged 2 commits intohaskell:masterfrom
crtschin:crtschin/fix-superclasses-missing-methods
Apr 19, 2026
Merged

Exclude superclass-generated names in class placeholders#4902
crtschin merged 2 commits intohaskell:masterfrom
crtschin:crtschin/fix-superclasses-missing-methods

Conversation

@crtschin
Copy link
Copy Markdown
Collaborator

Closes #4450.

Superclasses generate bindings in typeclasses as well. When determining which bindings to create placeholders for, these superclass-generated names need to be excluded. At the time of writing, this corresponds to the mkSuperDictAuxOcc function in Occurrence.hs in GHC, see the subsection on Making system names for the relevant bit.

@crtschin crtschin force-pushed the crtschin/fix-superclasses-missing-methods branch 2 times, most recently from c78756d to 87fb9eb Compare April 19, 2026 00:32
@crtschin crtschin marked this pull request as ready for review April 19, 2026 00:58
Copy link
Copy Markdown
Collaborator

@fendor fendor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you! Just one comment

Comment thread plugins/hls-class-plugin/src/Ide/Plugin/Class/Utils.hs Outdated
@crtschin crtschin enabled auto-merge (squash) April 19, 2026 09:31
Superclasses generate bindings in typeclasses as well. When determining
which bindings to create placeholders for, these superclass-generated
names need to be excluded.

At the time of writing, this corresponds to the `mkSuperDictAuxOcc`
function in Occurrence.hs in GHC, see the subsection on `Making system
names` for the relevant bit.
@crtschin crtschin force-pushed the crtschin/fix-superclasses-missing-methods branch from 8ba1b61 to 77c63d3 Compare April 19, 2026 12:21
@crtschin crtschin merged commit afc8779 into haskell:master Apr 19, 2026
42 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adding placeholders for non-implemented class methods adds non-existant methods

2 participants