diff options
author | Siegfried Pammer <siegfriedpammer@gmail.com> | 2016-06-16 12:34:43 +0300 |
---|---|---|
committer | Siegfried Pammer <siegfriedpammer@gmail.com> | 2016-06-16 12:38:57 +0300 |
commit | 2a744ce793cb8c670f4d6340b74ab95e8dfedcc0 (patch) | |
tree | 249b677473854f2753758a88f8861d6b06d8983f | |
parent | 16495d058b4ca39c0fe2a60f09a0f5b7bb2faf58 (diff) |
Fix TypeSystemAstBuilder: Outer type arguments should not be added to nested delegate declarations.
-rw-r--r-- | ICSharpCode.NRefactory.CSharp/Refactoring/TypeSystemAstBuilder.cs | 6 |
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); |