From 0cd2da019d3b1faea6a084f6c23616727fdde9b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20de=20S=C3=A9r=C3=A9sin?= Date: Wed, 11 Jul 2018 22:27:26 +0200 Subject: [PATCH] Instrument class constructors Fix #142 --- src/coverlet.core/Instrumentation/Instrumenter.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/coverlet.core/Instrumentation/Instrumenter.cs b/src/coverlet.core/Instrumentation/Instrumenter.cs index 0b287295d..e5d0d758c 100644 --- a/src/coverlet.core/Instrumentation/Instrumenter.cs +++ b/src/coverlet.core/Instrumentation/Instrumenter.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; @@ -91,6 +90,13 @@ private void InstrumentType(TypeDefinition type) if (!actualMethod.CustomAttributes.Any(IsExcludeAttribute)) InstrumentMethod(method); } + + var ctors = type.GetConstructors(); + foreach (var ctor in ctors) + { + if (!ctor.CustomAttributes.Any(IsExcludeAttribute)) + InstrumentMethod(ctor); + } } private void InstrumentMethod(MethodDefinition method) @@ -167,7 +173,7 @@ private void InstrumentIL(MethodDefinition method) private Instruction AddInstrumentationCode(MethodDefinition method, ILProcessor processor, Instruction instruction, SequencePoint sequencePoint) { if (!_result.Documents.TryGetValue(sequencePoint.Document.Url, out var document)) - { + { document = new Document { Path = sequencePoint.Document.Url }; _result.Documents.Add(document.Path, document); } @@ -194,7 +200,7 @@ private Instruction AddInstrumentationCode(MethodDefinition method, ILProcessor private Instruction AddInstrumentationCode(MethodDefinition method, ILProcessor processor, Instruction instruction, BranchPoint branchPoint) { if (!_result.Documents.TryGetValue(branchPoint.Document, out var document)) - { + { document = new Document { Path = branchPoint.Document }; _result.Documents.Add(document.Path, document); }