void ProcessGet(PropertyDefinition property)
    {
        //Exclude indexers
        if (property.HasParameters)
        {
            return;
        }

        var getMethod = property.GetMethod;

        //Exclude when no get
        if (getMethod == null)
        {
            return;
        }
        //Exclude when abstract
        if (getMethod.IsAbstract)
        {
            return;
        }
        var recursiveIlFinder = new RecursiveIlFinder(property.DeclaringType);

        recursiveIlFinder.Execute(getMethod);
        foreach (var instruction in recursiveIlFinder.Instructions)
        {
            ProcessInstructionForGet(property, instruction);
        }
    }
    public void Run()
    {
        var typeDefinition = DefinitionFinder.FindType<InnerClass>();
        var recursiveIlFinder = new RecursiveIlFinder(typeDefinition);

        var methodDefinition = typeDefinition.Methods.First(x => x.Name == "Method1");
        recursiveIlFinder.Execute(methodDefinition);
        #if(DEBUG)
        Assert.AreEqual(25, recursiveIlFinder.Instructions.Count);
        #else
        Assert.AreEqual(15, recursiveIlFinder.Instructions.Count);
        #endif
    }
    public void Run()
    {
        var typeDefinition    = DefinitionFinder.FindType <InnerClass>();
        var recursiveIlFinder = new RecursiveIlFinder(typeDefinition);

        var methodDefinition = typeDefinition.Methods.First(x => x.Name == "Method1");

        recursiveIlFinder.Execute(methodDefinition);
#if (DEBUG)
        Assert.Equal(25, recursiveIlFinder.Instructions.Count);
#else
        Assert.Equal(15, recursiveIlFinder.Instructions.Count);
#endif
    }
    void ProcessGet(PropertyDefinition property)
    {
        var getMethod = property.GetMethod;

        //Exclude when no get
        if (getMethod == null)
        {
            return;
        }
        //Exclude when abstract
        if (getMethod.IsAbstract)
        {
            return;
        }

        var recursiveIlFinder = new RecursiveIlFinder(property.DeclaringType);
        recursiveIlFinder.Execute(getMethod);
        foreach (var instruction in recursiveIlFinder.Instructions)
        {
            ProcessInstructionForGet(property, instruction);
        }
    }