diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/MethodNeverReturnsIssue.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/MethodNeverReturnsIssue.cs index 6a255a1aa7..3738fb4068 100644 --- a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/MethodNeverReturnsIssue.cs +++ b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/MethodNeverReturnsIssue.cs @@ -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) { diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/MethodNeverReturnsIssueTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/MethodNeverReturnsIssueTests.cs index 356845290e..2e5e4f5c1f 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/MethodNeverReturnsIssueTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/MethodNeverReturnsIssueTests.cs @@ -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 public void TestReturn () { var input = @" -partial class TestClass +class TestClass { void TestMethod () { @@ -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 (input, 0); + } + + [Test] + public void TesNeverReturns () + { + var input = @" +class TestClass { void TestMethod () {