diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeFunction.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeFunction.cs index 57caa1d11e..dc90f2ccbf 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeFunction.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeFunction.cs @@ -56,7 +56,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE } public virtual CodeTypeRef2 Type { - get { return new CodeTypeRef2(method.ProjectContent, null, method.ReturnType); } + get { return new CodeTypeRef2(method.ProjectContent, this, method.ReturnType); } } } } diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeParameter.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeParameter.cs index b571566266..22e0e9b2b8 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeParameter.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeParameter.cs @@ -26,7 +26,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE } public virtual CodeTypeRef2 Type { - get { return new CodeTypeRef2(projectContent, null, parameter.ReturnType); } + get { return new CodeTypeRef2(projectContent, this, parameter.ReturnType); } } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeFunctionTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeFunctionTests.cs index 64da29f8fa..9fd2169bf4 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeFunctionTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeFunctionTests.cs @@ -203,6 +203,17 @@ namespace PackageManagement.Tests.EnvDTE Assert.AreEqual("string", parameter.Type.AsString); } + [Test] + public void Parameters_MethodHasOneStringParameter_CreatesCodeParameterWithCodeTypeRefThatHasParameterAsParent() + { + AddParameterToMethod("System.String", "test"); + CreatePublicFunction("MyClass.MyMethod"); + + CodeParameter parameter = codeFunction.Parameters.FirstCodeParameterOrDefault(); + + Assert.AreEqual(parameter, parameter.Type.Parent); + } + [Test] public void Type_MethodReturnsString_TypeRefHasSystemStringAsFullName() { @@ -224,5 +235,16 @@ namespace PackageManagement.Tests.EnvDTE Assert.AreEqual("string", typeRef.AsString); } + + [Test] + public void Type_MethodReturnsString_TypeRefParentIsCodeFunction() + { + CreatePublicFunction("MyClass.MyFunction"); + AddReturnTypeToMethod("System.String"); + + CodeTypeRef2 typeRef = codeFunction.Type; + + Assert.AreEqual(codeFunction, typeRef.Parent); + } } }