Skip explicit implementations of generic methods of internal interfaces#55
Merged
Skip explicit implementations of generic methods of internal interfaces#55
Conversation
Co-authored-by: Alexander Ulitin <alexander.a.ulitin@gmail.com>
…ernal interface is preserved
Contributor
Author
|
@ulex could you please check if this will fix the original issue with the actual assembly you were trying to refasm? |
Contributor
|
Thanks! I can confirm that there is no exception on the assembly with which I initially had this problem. The produced assemblies are rather unexpected to me. The type claims to implement an internal interface, but there is not a single MethodImpl for the implementation. However, it seems to be as designed. |
ulex
approved these changes
Dec 22, 2025
Contributor
Author
|
I believe it is how it's currently designed (not only for this kind of interface, but for any internal interfaces), yes. Can't quite remember why it was done so, perhaps because of some magical constraints that might affect compilation or something like that :( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In the
--omit-non-api-members truemode, we are preserving the internal interface implementations on public types.The interface methods themselves are supposed to be skipped, only the fact of implementation is enough.
There was a problem with explicit implementations of generic methods: they have a bit different form in the CLI metadata, and the code that was supposed to skip their import, was still processing their signatures. An attempt to resolve an internal type in the signature of an explicit implementation of an internal interface's generic method (duh) was leading to the titular
UnknownTypeInSignature.(Also this includes some QoL fixes for the tests to better push their output so that it's more easily to view in the IDE.)
Closes #54.