Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/linker.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/linker
diff options
context:
space:
mode:
Diffstat (limited to 'linker')
-rw-r--r--linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs13
1 files changed, 13 insertions, 0 deletions
diff --git a/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs b/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs
index 34645b7a4..b7a4d44e8 100644
--- a/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs
+++ b/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs
@@ -123,6 +123,19 @@ namespace Mono.Linker.Steps
} catch (AssemblyResolutionException) {
continue;
}
+ if (resolvedExportedType == null) {
+ // we ignore the nested forwarders here as a workaround for older csc bug,
+ // where it was adding nested forwarders to exported types, even when the nested type was not public
+ // see https://bugzilla.xamarin.com/show_bug.cgi?id=57645#c13
+ if (exported.DeclaringType != null) {
+ if (context.LogInternalExceptions)
+ System.Console.WriteLine ($"warning: unable to resolve exported nested type: {exported} (declaring type: {exported.DeclaringType}) from the assembly: {assembly}");
+
+ continue;
+ }
+ throw new LoadException ($"unable to resolve exported forwarded type: {exported} from the assembly: {assembly}");
+ }
+
context.Resolve (resolvedExportedType.Scope);
MarkType (context, resolvedExportedType, rootVisibility);
context.Annotations.Mark (exported);