Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 5e6013e

Browse files
committed
Fix generated code from T4MVC.tt
EnvDTE.CodeType from an external assembly was not returning any members.
1 parent fae42a9 commit 5e6013e

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeType.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ string GetTypeArguments()
121121
members = new CodeElementsList<CodeElement>();
122122
members.AddRange(typeDefinition.Members
123123
.Where(member => IsInFilter(member.Region))
124-
.Where(member => !member.Region.End.IsEmpty)
124+
.Where(member => !member.Region.End.IsEmpty || !typeDefinition.ParentAssembly.IsMainAssembly)
125125
.Select(member => CreateMember(context, member)));
126126
}
127127
return members;

src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,5 +381,29 @@ public void Attributes_GetItemByNameWhenClassHasOneAttribute_ReturnsOneAttribute
381381

382382
Assert.AreEqual("Obsolete", attribute.Name);
383383
}
384+
385+
[Test]
386+
public void Members_ClassIsSystemAttributeAsReturnTypeFromClassMethod_HasMembersForSystemAttribute()
387+
{
388+
CreateClass(
389+
"using System;\r\n" +
390+
"class MyClass {\r\n" +
391+
" public Attribute GetAttribute() {\r\n" +
392+
" return null;\r\n" +
393+
" }\r\n" +
394+
"}");
395+
CodeClass2 returnType = codeClass
396+
.Members
397+
.OfType<CodeFunction2>()
398+
.First(member => member.Name == "GetAttribute")
399+
.Type
400+
.CodeType as CodeClass2;
401+
402+
List<CodeElement> members = returnType.Members.ToList();
403+
404+
Assert.AreEqual("System.Attribute", returnType.FullName);
405+
Assert.That(members.Count, Is.GreaterThan(0));
406+
Assert.IsTrue(members.Any(member => member.Name == "IsDefaultAttribute"));
407+
}
384408
}
385409
}

0 commit comments

Comments
 (0)