@@ -1362,61 +1362,6 @@ private bool SkipExpressionBreakpointsSequences(MethodDefinition methodDefinitio
1362
1362
return false ;
1363
1363
}
1364
1364
1365
- //public bool SkipInlineAssignedAutoProperty(bool skipAutoProps, MethodDefinition methodDefinition, Instruction instruction)
1366
- //{
1367
- // if (!skipAutoProps || !methodDefinition.IsConstructor) return false;
1368
-
1369
- // return SkipGeneratedBackingFieldAssignment(methodDefinition, instruction) ||
1370
- // SkipDefaultInitializationSystemObject(instruction);
1371
- //}
1372
-
1373
- //private static bool SkipGeneratedBackingFieldAssignment(MethodDefinition methodDefinition, Instruction instruction)
1374
- //{
1375
- // /*
1376
- // For inline initialization of properties the compiler generates a field that is set in the constructor of the class.
1377
- // To skip this we search for compiler generated fields that are set in the constructor.
1378
-
1379
- // .field private string '<SurName>k__BackingField'
1380
- // .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = (
1381
- // 01 00 00 00
1382
- // )
1383
-
1384
- // .method public hidebysig specialname rtspecialname
1385
- // instance void .ctor () cil managed
1386
- // {
1387
- // IL_0000: ldarg.0
1388
- // IL_0001: ldsfld string[System.Runtime] System.String::Empty
1389
- // IL_0006: stfld string TestRepro.ClassWithPropertyInit::'<SurName>k__BackingField'
1390
- // ...
1391
- // }
1392
- // ...
1393
- // */
1394
- // IEnumerable<FieldDefinition> autogeneratedBackingFields = methodDefinition.DeclaringType.Fields.Where(x =>
1395
- // x.CustomAttributes.Any(ca => ca.AttributeType.FullName.Equals(typeof(CompilerGeneratedAttribute).FullName)) &&
1396
- // x.FullName.EndsWith("k__BackingField"));
1397
-
1398
- // return instruction.OpCode == OpCodes.Ldarg &&
1399
- // instruction.Next?.Next?.OpCode == OpCodes.Stfld &&
1400
- // instruction.Next?.Next?.Operand is FieldReference fr &&
1401
- // autogeneratedBackingFields.Select(x => x.FullName).Contains(fr.FullName);
1402
- //}
1403
-
1404
- //private static bool SkipDefaultInitializationSystemObject(Instruction instruction)
1405
- //{
1406
- // /*
1407
- // A type always has a constructor with a default instantiation of System.Object. For record types these
1408
- // instructions can have a own sequence point. This means that even the default constructor would be instrumented.
1409
- // To skip this we search for call instructions with a method reference that declares System.Object.
1410
-
1411
- // IL_0000: ldarg.0
1412
- // IL_0001: call instance void [System.Runtime]System.Object::.ctor()
1413
- // IL_0006: ret
1414
- // */
1415
- // return instruction.OpCode == OpCodes.Ldarg &&
1416
- // instruction.Next?.OpCode == OpCodes.Call &&
1417
- // instruction.Next?.Operand is MethodReference mr && mr.DeclaringType.FullName.Equals(typeof(System.Object).FullName);
1418
- //}
1419
-
1420
1365
private static bool SkipBranchGeneratedExceptionFilter ( Instruction branchInstruction , MethodDefinition methodDefinition )
1421
1366
{
1422
1367
if ( ! methodDefinition . Body . HasExceptionHandlers )
0 commit comments