-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Analyze recursive interfaces in illink #99566
Closed
Closed
Changes from all commits
Commits
Show all changes
46 commits
Select commit
Hold shift + click to select a range
8454427
Refactor OverrideInformation to include interface implementing type
jtschuster 54c326d
Add NotNullWhenAttribute for InterfaceImplementor
jtschuster 6bfc58a
Don't allow null interfaceImpl when base and override are interface m…
jtschuster ecc5d0c
Add InterfaceType to InterfaceImplementor
jtschuster 310de30
Make new members internal for compat warnings
jtschuster 77195a3
Make InterfaceImplementor internal for API compat
jtschuster a73cc1f
Make TypeMapInfo internal for API Compat
jtschuster 76bc255
Add InterfaceImplementor to suppressions.xml
jtschuster 11577fa
Make types public again
jtschuster 5fb3256
Use correct InterfaceImplementor in FindAndAddDims
jtschuster 3b4a69d
InterfaceImplementor doesn't need to directly implement the interface
jtschuster cae111a
Add test case for interfaces without impls for whole hierarchy
jtschuster 00d42b7
Undo source changes
jtschuster 49b3464
Comment out all failing assertions
jtschuster 14814ed
PR Feedback
jtschuster 56f23e4
Don't need to resolve TypeDefinitions
jtschuster ccd0a8f
Merge branch 'main' of https://github.com/dotnet/runtime into CheckIm…
jtschuster 1d1e883
Use correct InterfaceImpl
jtschuster 7b218b6
Add argument to first call
jtschuster 9addd27
Merge branch 'main' of https://github.com/dotnet/runtime into CheckIm…
jtschuster 9b76b42
Merge branch 'main' into InterfacesWithoutImpls
jtschuster 81ebc93
Look on base types and interfaces for interfaceImpl
jtschuster 2828764
Merge branch 'main' of https://github.com/dotnet/runtime into Interfa…
jtschuster 9a74024
Merge branch 'CheckImplementingType2' into InterfacesWithoutImpls
jtschuster 6b2f99d
wip
jtschuster 99164eb
wip
jtschuster e8c9319
Merge branch 'main' of https://github.com/dotnet/runtime into Analyze…
jtschuster 295c099
wip
jtschuster 40aa061
Merge branch 'main' of https://github.com/dotnet/runtime into Analyze…
jtschuster 7189da5
Merge branch 'main' of https://github.com/dotnet/runtime into Analyze…
jtschuster 8219095
Merge branch 'main' of https://github.com/dotnet/runtime into Analyze…
jtschuster a3a16df
Passing tests
jtschuster 01d6f9c
wip
jtschuster 8996d54
Passing tests
jtschuster 6c51750
Make InterfaceImpl iterator a struct and unify resolved/unresolved if…
jtschuster d4f4ae8
Rename tests, reorder code, add DictionaryExtensions
jtschuster fafdda8
Clean up and add comments
jtschuster dd1feee
Rename tests, format code, add a few comments
jtschuster fae5bbd
Merge branch 'main' of https://github.com/dotnet/runtime into Analyze…
jtschuster cbab8b5
Remove some unnecessary changes, add 'HasExplicitImplementation' prop
jtschuster 8b20918
Move property definition closer to use and make private
jtschuster 999dc7d
Remove redundant test
jtschuster 2b37c54
Merge branch 'main' into AnalyzeRecursiveInterfaces
jtschuster 9aa7554
Add annotations for IReflection to ProjectingType and its hierarchy
jtschuster 1fb7a4d
Merge branch 'AnalyzeRecursiveInterfaces' of https://github.com/jtsch…
jtschuster cfc1189
ifdef out DynamicallyAccessedMembers
jtschuster File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it'd make sense to separate this out into another change to make it clear what that impact of this optimization is on the test cases.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In fact, would it be possible to start with a simpler change that does something like
IsInterfaceImplementationMarkedRecursively
here, without tracking the instantiated interface types?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I could probably start with that.