Browse Source

Avoid crash when using snippet parser on empty input. Fixes NullReferenceException in ICSharpCode.NRefactory.Parser.CSharp.Parser.ParseBlock.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6394 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 15 years ago
parent
commit
af677c1dc8
  1. 5
      src/Libraries/NRefactory/Project/Src/Parser/CSharp/CSharpParser.cs

5
src/Libraries/NRefactory/Project/Src/Parser/CSharp/CSharpParser.cs

@ -94,7 +94,7 @@ namespace ICSharpCode.NRefactory.Parser.CSharp @@ -94,7 +94,7 @@ namespace ICSharpCode.NRefactory.Parser.CSharp
if (expr.StartLocation.IsEmpty)
expr.StartLocation = startLocation;
if (expr.EndLocation.IsEmpty)
expr.EndLocation = t.EndLocation;
expr.EndLocation = (t ?? la).EndLocation;
expr.AcceptVisitor(new SetParentVisitor(), null);
}
Expect(Tokens.EOF);
@ -120,7 +120,8 @@ namespace ICSharpCode.NRefactory.Parser.CSharp @@ -120,7 +120,8 @@ namespace ICSharpCode.NRefactory.Parser.CSharp
}
BlockEnd();
blockStmt.EndLocation = t.EndLocation;
// if lexer didn't return any tokens, use position of the EOF token in "la"
blockStmt.EndLocation = (t ?? la).EndLocation;
Expect(Tokens.EOF);
blockStmt.AcceptVisitor(new SetParentVisitor(), null);
return blockStmt;

Loading…
Cancel
Save