From 55f9a6014c519c4e5861caca79d78b16f310b1eb Mon Sep 17 00:00:00 2001 From: Dragan Date: Fri, 20 Dec 2013 21:38:26 +0100 Subject: [PATCH] CodeCoverage Fix "in" keyword --- .../CodeCoverage/Project/Src/CodeCoverageMethodElement.cs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethodElement.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethodElement.cs index bcdafa89d6..18d52aef50 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethodElement.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethodElement.cs @@ -214,15 +214,11 @@ namespace ICSharpCode.CodeCoverage nextMatch = false; excludeOffsetList.Add(new Tuple ( previousSeqPoint.Offset , currentSeqPoint.Offset )); } - // SequencePoints are ordered by offset and that order exposes reverse ordered lines - // ie: foreach ( var item in (IEnumerable)items ) code for "in" keyword is generated "out-of-sequence", - // with lower line number than previous line (reversed line order). // Generated "in" code for IEnumerables contains hidden "try/catch/finally" branches that // one do not want or cannot cover by test-case because is handled earlier at same method. // ie: NullReferenceException in foreach loop is pre-handled at method entry, ie. by Contract.Require(items!=null) - if (currentSeqPoint.Line < previousSeqPoint.Line - && currentSeqPoint.Content == "in" ) { - // currentSeqPoint has lower line number than previousSeqPoint and content is equal to "in" keyword + if (currentSeqPoint.Content == "in") { + // Content is equal to "in" keyword nextMatch = true; } previousSeqPoint = currentSeqPoint;