Browse Source

Add namespaces of type forwarders to namespaces list.

pull/1096/merge
Siegfried Pammer 8 years ago
parent
commit
22c4d45610
  1. 8
      ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

8
ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

@ -335,8 +335,12 @@ namespace ICSharpCode.Decompiler.CSharp @@ -335,8 +335,12 @@ namespace ICSharpCode.Decompiler.CSharp
{
foreach (var a in typeSystem.Compilation.MainAssembly.AssemblyAttributes) {
decompileRun.Namespaces.Add(a.AttributeType.Namespace);
decompileRun.Namespaces.AddRange(a.PositionalArguments.Select(pa => pa.Type.Namespace));
decompileRun.Namespaces.AddRange(a.NamedArguments.Select(na => na.Value.Type.Namespace));
if (a.AttributeType.FullName == typeof(System.Runtime.CompilerServices.TypeForwardedToAttribute).FullName) {
decompileRun.Namespaces.Add(((TypeOfResolveResult)a.PositionalArguments[0]).ReferencedType.Namespace);
} else {
decompileRun.Namespaces.AddRange(a.PositionalArguments.Select(pa => pa.Type.Namespace));
decompileRun.Namespaces.AddRange(a.NamedArguments.Select(na => na.Value.Type.Namespace));
}
var astBuilder = CreateAstBuilder(decompilationContext);
var attrSection = new AttributeSection(astBuilder.ConvertAttribute(a));
attrSection.AttributeTarget = "assembly";

Loading…
Cancel
Save