[linker] Resolve AssemblyName[Reference] when sweeping [#29211]
authorSebastien Pouliot <sebastien@xamarin.com>
Wed, 22 Apr 2015 01:29:56 +0000 (21:29 -0400)
committerSebastien Pouliot <sebastien@xamarin.com>
Wed, 22 Apr 2015 01:29:56 +0000 (21:29 -0400)
The exact name (e.g. version) might differ between the original
AssemblyNameReference and the one being used (e.g. PCL).

To make sure we remove unused references we need to resolve
the AssemblyNameReference into AssemblyDefinition and then
continue the sweep based on the _new_ AssemblyNameReference.

mcs/tools/linker/Mono.Linker.Steps/SweepStep.cs

index d7be23ac9e33dbbd87eb856657dcb727a6e5d837..808d09255fee42e448b185b621eed23aa55de6cc 100644 (file)
@@ -100,7 +100,8 @@ namespace Mono.Linker.Steps {
                        var references = assembly.MainModule.AssemblyReferences;
                        for (int i = 0; i < references.Count; i++) {
                                var reference = references [i];
-                               if (!AreSameReference (reference, target.Name))
+                               var r = Context.Resolver.Resolve (reference);
+                               if (!AreSameReference (r.Name, target.Name))
                                        continue;
 
                                references.RemoveAt (i);