From f479cb03e019f4d4c36b8f8571702de5ad93c6e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Tue, 8 Nov 2011 11:14:23 +0100 Subject: [PATCH] fixed bug in parameter parsing. --- ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs | 4 +++- ICSharpCode.NRefactory.CSharp/Parser/mcs/parameter.cs | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs b/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs index 20ce4485b9..ae3e33b187 100644 --- a/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs +++ b/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs @@ -815,7 +815,7 @@ namespace ICSharpCode.NRefactory.CSharp public void AddAttributeSection (AstNode parent, Attributable a) { - if (a.OptAttributes == null) + if (a == null || a.OptAttributes == null) return; AddAttributeSection (parent, a.OptAttributes); } @@ -2278,6 +2278,8 @@ namespace ICSharpCode.NRefactory.CSharp for (int i = 0; i < parameters.Count; i++) { var p = (Parameter)parameters.FixedParameters [i]; + if (p == null) + continue; var location = LocationsBag.GetLocations (p); ParameterDeclaration parameterDeclarationExpression = new ParameterDeclaration (); AddAttributeSection (parameterDeclarationExpression, p); diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/parameter.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/parameter.cs index e9b9042cf2..d73a6e61ac 100644 --- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/parameter.cs +++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/parameter.cs @@ -955,7 +955,10 @@ namespace Mono.CSharp { int count = parameters.Length; for (int i = 0; i < count; i++){ - has_params |= (parameters [i].ModFlags & Parameter.Modifier.PARAMS) != 0; + var p = parameters [i]; + if (p == null) + continue; + has_params |= (p.ModFlags & Parameter.Modifier.PARAMS) != 0; } }