From 35cbe54378045fcb9b33e9915115d5737b046f62 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Tue, 4 Oct 2016 16:38:08 +0200 Subject: [PATCH] [linker] We need to mark nested types even if the declaring type isn't marked. --- mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs b/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs index 0c39910ff5e..bc04fc5c7c0 100644 --- a/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs +++ b/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs @@ -69,16 +69,21 @@ namespace Mono.Linker.Steps { protected virtual void InitializeAssembly (AssemblyDefinition assembly) { MarkAssembly (assembly); - foreach (TypeDefinition type in assembly.MainModule.Types) { - if (!Annotations.IsMarked (type)) - continue; + foreach (TypeDefinition type in assembly.MainModule.Types) InitializeType (type); - } } void InitializeType (TypeDefinition type) { + if (type.HasNestedTypes) { + foreach (var nested in type.NestedTypes) + InitializeType (nested); + } + + if (!Annotations.IsMarked (type)) + return; + MarkType (type); if (type.HasFields) -- 2.25.1