Browse Source

[CodeIssues] MethodNeverReturnsIssue: handle 'throw' case

newNRvisualizers
Mansheng Yang 14 years ago
parent
commit
588b127a42
  1. 3
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/MethodNeverReturnsIssue.cs
  2. 22
      ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/MethodNeverReturnsIssueTests.cs

3
ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/MethodNeverReturnsIssue.cs

@ -70,7 +70,8 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
if (node.PreviousStatement == methodDeclaration.Body) if (node.PreviousStatement == methodDeclaration.Body)
return; return;
// reach a return statement // reach a return statement
if (node.NextStatement is ReturnStatement) if (node.NextStatement is ReturnStatement ||
node.NextStatement is ThrowStatement)
return; return;
foreach (var edge in node.Outgoing) { foreach (var edge in node.Outgoing) {

22
ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/MethodNeverReturnsIssueTests.cs

@ -36,7 +36,7 @@ namespace ICSharpCode.NRefactory.CSharp.CodeIssues
public void TestEnd () public void TestEnd ()
{ {
var input = @" var input = @"
partial class TestClass class TestClass
{ {
void TestMethod () void TestMethod ()
{ {
@ -50,7 +50,7 @@ partial class TestClass
public void TestReturn () public void TestReturn ()
{ {
var input = @" var input = @"
partial class TestClass class TestClass
{ {
void TestMethod () void TestMethod ()
{ {
@ -61,10 +61,24 @@ partial class TestClass
} }
[Test] [Test]
public void Test () public void TestThrow ()
{ {
var input = @" var input = @"
partial class TestClass class TestClass
{
void TestMethod ()
{
throw new System.NotImplementedException();
}
}";
Test<MethodNeverReturnsIssue> (input, 0);
}
[Test]
public void TesNeverReturns ()
{
var input = @"
class TestClass
{ {
void TestMethod () void TestMethod ()
{ {

Loading…
Cancel
Save