diff options
author | Jackson Schuster <36744439+jtschuster@users.noreply.github.com> | 2022-11-02 18:37:46 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-02 18:37:46 +0300 |
commit | 391ac60bbfb2c618b82f08af728d2d4d259d584e (patch) | |
tree | 94147f3fec3c7d8a0ef09fb0a07cc137ce632d3e /src | |
parent | e502e7255030dde029e984e397924338485d1079 (diff) |
Don't mark override of abstract base if the override's declaring type is not marked (#3098)
* Don't mark an override every time the base is abstract, only if the declaring type is also marked
Adds a condition to ShouldMarkOverrideForBase to exit early if the declaring type of the method is not marked.
Diffstat (limited to 'src')
-rw-r--r-- | src/linker/Linker.Steps/MarkStep.cs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/linker/Linker.Steps/MarkStep.cs b/src/linker/Linker.Steps/MarkStep.cs index 646e2e6bd..67a3c42b3 100644 --- a/src/linker/Linker.Steps/MarkStep.cs +++ b/src/linker/Linker.Steps/MarkStep.cs @@ -715,6 +715,8 @@ namespace Mono.Linker.Steps // TODO: Move interface method marking logic here https://github.com/dotnet/linker/issues/3090 bool ShouldMarkOverrideForBase (OverrideInformation overrideInformation) { + if (!Annotations.IsMarked (overrideInformation.Override.DeclaringType)) + return false; if (overrideInformation.IsOverrideOfInterfaceMember) { _interfaceOverrides.Add ((overrideInformation, ScopeStack.CurrentScope)); return false; |