diff options
author | Tlakaelel Axayakatl Ceja <tlakaelel.ceja@microsoft.com> | 2021-04-09 23:28:52 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-09 23:28:52 +0300 |
commit | 6944b7c146a7149c108acad19b237a29fd2eed15 (patch) | |
tree | aa3fa49494b4b08929389681cf996c5d8fd2894e /test/Mono.Linker.Tests.Cases/DataFlow | |
parent | 38564415d8de0ca415734e764b7ad21e7e4c5c15 (diff) |
Add support for annotations in classes/interfaces/structs in the linker (#1929)
Main goal:
Adding [DynamicallyAccessedMembers] on a type Base enables code like:
```C#
Base b;
b.GetType().GetMethods() ....
```
The object.GetType() call will treat the return value as annotated with the annotation from the Base type. Base and all derived types will then include all necessary members according to the annotation.
Same will work for interfaces (putting the annotation on an interface).
Changes:
- Data flow now tracks static type of all values
- New class which implements the annotation cache and marking for type hierarchies
- Integration from MarkStep and ReflectionMethodBodyScanner
- Lot new tests
Co-authored-by: Lakshan Fernando <lakshanf@microsoft.com>
Co-authored-by: tlakollo <tlcejava@microsoft.com>
Co-authored-by: vitek-karas <vitek.karas@microsoft.com>
Diffstat (limited to 'test/Mono.Linker.Tests.Cases/DataFlow')
0 files changed, 0 insertions, 0 deletions