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

github.com/xamarin/NRefactory.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiegfried Pammer <siegfriedpammer@gmail.com>2016-06-16 12:34:43 +0300
committerSiegfried Pammer <siegfriedpammer@gmail.com>2016-06-16 12:38:57 +0300
commit2a744ce793cb8c670f4d6340b74ab95e8dfedcc0 (patch)
tree249b677473854f2753758a88f8861d6b06d8983f
parent16495d058b4ca39c0fe2a60f09a0f5b7bb2faf58 (diff)
Fix TypeSystemAstBuilder: Outer type arguments should not be added to nested delegate declarations.
-rw-r--r--ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs6
1 files changed, 4 insertions, 2 deletions
diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs
index bc304f18..f0051e10 100644
--- a/ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs
+++ b/ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs
@@ -742,8 +742,10 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
decl.ReturnType = ConvertType(invokeMethod.ReturnType);
decl.Name = d.Name;
+ int outerTypeParameterCount = (d.DeclaringTypeDefinition == null) ? 0 : d.DeclaringTypeDefinition.TypeParameterCount;
+
if (this.ShowTypeParameters) {
- foreach (ITypeParameter tp in d.TypeParameters) {
+ foreach (ITypeParameter tp in d.TypeParameters.Skip(outerTypeParameterCount)) {
decl.TypeParameters.Add(ConvertTypeParameter(tp));
}
}
@@ -753,7 +755,7 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
}
if (this.ShowTypeParameters && this.ShowTypeParameterConstraints) {
- foreach (ITypeParameter tp in d.TypeParameters) {
+ foreach (ITypeParameter tp in d.TypeParameters.Skip(outerTypeParameterCount)) {
var constraint = ConvertTypeParameterConstraint(tp);
if (constraint != null)
decl.Constraints.Add(constraint);