Age | Commit message (Collapse) | Author |
|
If a field is accessed on a sequential/explicit class, we need to keep the instance fields on base types intact so that the offsets match. This happens naturally, except for the case where the type is not seen as allocated and we still have a field access somewhere (which could be in dead code or code that throws a nullreference, or code that did shenanigans with Unsafe.As and actually operates on an instance of a different type).
|
|
(#1330)
Should fix the issue observed in CoreLib where `RawData` class is used with `Unsafe.As` to break type safety and linker stripped its fields because it's not seen as instantiated.
|
|
We can postpone marking fields on types with layout until we're really sure they're needed. They're needed if they're visible to reflection, or considered instantiated (valuetypes are implicitly considered instantiated).
I'm also allowing stripping fields on Auto layout structs. This is a rare sight, but there's no reason that I know of to force them to have all their fields kept.
|
|
* Apply consistent formatting based on .editorconfig
```
dotnet format -f <path>
```
* Add lint step to the CI
* Use local tool
* Suppress publish logs warning
* Fix more style errors
* Fixes bad merge
* Write something to log dir
* Move lint job to global scope
So it doesn't get the arcade publish logs/test steps injected.
* Split sources and tests reporting
* Include also src folder in the run
* Exclude cecil sources
* Remove duplicate line
* Trigger notification
* Format more code
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
|
|
This organizes the source and test projects as follows:
- source projects go in `src/project/projectfile.csproj`
- test projects go in `test/project/projectfile.csproj`
The uniform layout of projects is part of the arcade onboarding (see https://github.com/mono/linker/issues/452).
|