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

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

@ -36,7 +36,7 @@ namespace ICSharpCode.NRefactory.CSharp.CodeIssues @@ -36,7 +36,7 @@ namespace ICSharpCode.NRefactory.CSharp.CodeIssues
public void TestEnd ()
{
var input = @"
partial class TestClass
class TestClass
{
void TestMethod ()
{
@ -50,7 +50,7 @@ partial class TestClass @@ -50,7 +50,7 @@ partial class TestClass
public void TestReturn ()
{
var input = @"
partial class TestClass
class TestClass
{
void TestMethod ()
{
@ -61,10 +61,24 @@ partial class TestClass @@ -61,10 +61,24 @@ partial class TestClass
}
[Test]
public void Test ()
public void TestThrow ()
{
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 ()
{

Loading…
Cancel
Save