but it does pass all the unit tests :)

On Monday, 5 November 2012 23:30:58 UTC+11, Simon wrote:
>
> So I merged this 
> https://github.com/atykhyy/cecil/commit/a871befb703d41ddf8ed3618300ed68d3da50f9fwith
>  master and got this 
> https://github.com/SimonCropp/cecil
>
> And I can now view the variable in the iterator block so it looks 
> like atykhyy had the fix right.
>
> Of course it is a significant number of changes 
> https://github.com/SimonCropp/cecil/commit/799a1e54cd521a262e73de6e17828ce4a252b9b0
>
> And I have no idea if it broke anything else :)
>
>
> On Monday, 5 November 2012 06:34:17 UTC+11, Simon wrote:
>>
>> Looks like there are a couple of ways forward in that issue.
>>
>> Are you not confident in the quality of the patches?
>>
>> On 05/11/2012, at 1:11 AM, Jb Evain <[email protected]> wrote:
>>
>> I'am not surprised.
>>
>> We're already messing with iterators, see 
>> https://github.com/jbevain/cecil/issues/4
>>
>> It's no surprise we have an issue with async methods.
>>
>> Jb
>>
>>
>> On Sun, Nov 4, 2012 at 10:06 AM, Simon <[email protected]> wrote:
>>
>>> JB
>>>
>>> https://www.dropbox.com/s/1rfr13g7qjmfm4w/CecilDebugIssue.zip
>>>
>>> So someone raised this bug with NPW
>>> https://github.com/SimonCropp/NotifyPropertyWeaver/issues/15
>>>
>>> And it turns out it effects the other MSBuild project where I use cecil.
>>>
>>> It manifests as such...
>>>
>>> Given this
>>>
>>> [TestFixture]
>>> public class AsyncTest
>>> {
>>>     [Test]
>>>     public void TestAsynch()
>>>     {
>>>         AsyncDebuggerTest();
>>>     }
>>>
>>>     public async void AsyncDebuggerTest()
>>>     {
>>>         var test = await getTestString();
>>>         //set breakpoint on next line and look at 'test' variable in 
>>> debugger
>>>         var test2 = test + test;
>>>     }
>>>
>>>     private async Task<string> getTestString()
>>>     {
>>>         return "test";
>>>     }
>>> }
>>>
>>> you cant view the "test" variable in AsyncDebuggerTest
>>>
>>> if I remove the async code I can view "test"
>>>
>>> [TestFixture]
>>> public class NonAsyncTest
>>> {
>>>     [Test]
>>>     public void TestAsynch()
>>>     {
>>>         AsyncDebuggerTest();
>>>     }
>>>
>>>     public void AsyncDebuggerTest()
>>>     {
>>>         var test = getTestString();
>>>         //set breakpoint on next line and look at 'test' variable in 
>>> debugger
>>>         var test2 = test + test;
>>>     }
>>>
>>>     private string getTestString()
>>>     {
>>>         return "test";
>>>     }
>>> }
>>>
>>> See CecilDebugIssue project in the attachment for the above two classes
>>>
>>>
>>> If I remove cecil from the equation I can view the "test" variable in 
>>> the async case. See WithNoCecil project in attachment
>>>
>>> I have included the bin+obj dir in the attachment so you can have a look 
>>> at the pdb and dlls
>>>
>>> my module reader code is here
>>>
>>> https://github.com/SimonCropp/Fody/blob/master/FodyIsolated/ModuleReader.cs
>>> and my module write code is here
>>>
>>> https://github.com/SimonCropp/Fody/blob/master/FodyIsolated/ModuleWriter.cs
>>>
>>> is this enough to go on?  I know it is a complicated repro but I am 
>>> hoping it is enough for you to go on.
>>>
>>> Regards 
>>> Simon
>>>
>>> -- 
>>> --
>>> mono-cecil
>>
>>
>>  -- 
>> --
>> mono-cecil
>>
>>

-- 
--
mono-cecil

Reply via email to