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

Make all of the trimmer aware of recursive interfaces #103317

Open
wants to merge 34 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
d6564fb
Use recursive-interface-aware types and methods in TypeMapInfo
jtschuster Jun 4, 2024
8e94b0e
Use RuntimeInterfaceImplementations in MethodBodyScanner and ICustomM…
jtschuster Jun 11, 2024
cf304f2
Add remarks regarding checking for marked ifaceImpls with RuntimeInte…
jtschuster Jun 11, 2024
fcbfbb7
Fix ApiCompat failures
jtschuster Jun 11, 2024
e5e0679
Fix visibility and sealed warnings
jtschuster Jun 11, 2024
451b677
Add DAM annotations for recursive interfaces
jtschuster Jun 12, 2024
1e1451a
Add additional test cases and annotate reflection types with ifdefs
jtschuster Jun 13, 2024
ac5a42a
Use suppressions instead of annotating in System.Reflection.Context
jtschuster Jun 13, 2024
4e1f6f9
Add test and fix for failure in System.Text.Json
jtschuster Jun 17, 2024
f8dad6b
Check for implementor to be marked, not overridingMethod.DeclaringType
jtschuster Jun 17, 2024
2aca6c4
PR feedback:
jtschuster Jun 17, 2024
bb308c7
Separate out generic DIM matching fix
jtschuster Jun 18, 2024
4848448
Remove unused parameter, Add test case
jtschuster Jun 26, 2024
dec9745
Mark all implementation chains for interface impls
jtschuster Jun 27, 2024
a7d785f
Merge branch 'main' of https://github.com/dotnet/runtime into Recursi…
jtschuster Jun 28, 2024
b6f101a
Add runtimeInterface assertions to tests
jtschuster Jun 28, 2024
66a3bcf
Add tests for TypeMapInfo
jtschuster Jun 28, 2024
4fa8ec5
Merge branch 'main' of https://github.com/dotnet/runtime into Recursi…
jtschuster Aug 12, 2024
e524b22
Move RuntimeInterfaces algorithm to its own class
jtschuster Aug 12, 2024
a8dfbd3
Inline the runtime interfaces helpers to avoid confusing naming
jtschuster Aug 12, 2024
d6cc947
Merge branch 'main' of https://github.com/dotnet/runtime into Recursi…
jtschuster Aug 12, 2024
01e4518
Undo unrelated formatting
jtschuster Aug 13, 2024
df04484
Revert "Implement type name resolution for ILLink analyzer (#106209)"
jtschuster Aug 13, 2024
ce27822
Don't warn on methods implementing iface methods if the iface is not …
jtschuster Aug 16, 2024
db02cfb
Undo unrelated analyzer changes
jtschuster Aug 16, 2024
d88b219
Undo unrelated formatting
jtschuster Aug 16, 2024
259d734
Revert suppression changes
jtschuster Aug 16, 2024
291e2e6
Merge branch 'main' of https://github.com/dotnet/runtime into Recursi…
jtschuster Aug 16, 2024
1d769b2
Undo unrelated formatting
jtschuster Aug 16, 2024
6a01772
Merge branch 'main' of https://github.com/dotnet/runtime into Recursi…
jtschuster Aug 19, 2024
756d90e
Add 'as' cast to RuntimeInterfacesAlgorithm
jtschuster Aug 20, 2024
626934c
Add generated analyzer tests
jtschuster Aug 20, 2024
41acd7e
Merge branch 'main' into RecursiveGenericInterfaces
jtschuster Aug 23, 2024
f285f9a
Merge branch 'main' into RecursiveGenericInterfaces
jtschuster Aug 28, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add remarks regarding checking for marked ifaceImpls with RuntimeInte…
…rfaceImpl
  • Loading branch information
jtschuster committed Jun 11, 2024
commit cf304f206c1905c6d24d9aec9d1dcaf9b9aa9bc0
Original file line number Diff line number Diff line change
@@ -14,6 +14,11 @@ namespace Mono.Linker
/// Represents an implementation of an interface on a type that may be directly on the type or on a base type or implemented interface.
/// This type is considered to implement the interface at runtime, even though the interface may not be directly on the type.
/// </summary>
/// <remarks>
/// This type should be used for marking, but should NOT be used to check if a runtime interface implementation has been marked.
/// This type represents the most direct way an interface may be implemented, but it may be implemented in a less direct way that is not represented here.
/// You should check all possible implementation 'paths' to determine if an interface is implemented, for example <see cref="MarkStep.IsInterfaceImplementationMarkedRecursively"/>.
/// </remarks>
public class RuntimeInterfaceImplementation
{
/// <summary>
Loading