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; } }