Browse Source
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4827 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61shortcuts
4 changed files with 131 additions and 2 deletions
@ -0,0 +1,121 @@
@@ -0,0 +1,121 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
|
||||
// <version>$Revision: 3230 $</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
|
||||
namespace Debugger.Tests.TestPrograms |
||||
{ |
||||
public class CompilerGeneratedClasses |
||||
{ |
||||
delegate void IntDelegate(int i); |
||||
|
||||
public static void Main() |
||||
{ |
||||
new List<object>(MyEnum()); |
||||
} |
||||
|
||||
static IEnumerable<object> MyEnum() |
||||
{ |
||||
int stateFullVar = 101; |
||||
int stateFullVar_DelegRef = 102; |
||||
int stateFullVar_NestedDelegRef = 103; |
||||
|
||||
yield return stateFullVar + stateFullVar_DelegRef + stateFullVar_NestedDelegRef; |
||||
|
||||
{ |
||||
int stateLessVar = 201; |
||||
int stateLessVar_DelegRef = 202; |
||||
int stateLessVar_NestedDelegRef = 203; |
||||
|
||||
System.Diagnostics.Debugger.Break(); |
||||
|
||||
IntDelegate deleg = delegate (int delegArg_NestedDelegRef) { |
||||
int delegVar = 301; |
||||
int delegVar_NestedDelegRef = 302; |
||||
Console.WriteLine(stateFullVar_DelegRef); |
||||
Console.WriteLine(stateLessVar_DelegRef); |
||||
|
||||
IntDelegate nestedDeleg = delegate (int nestedDelegArg) { |
||||
int nestedDelegVar = 303; |
||||
Console.WriteLine(delegArg_NestedDelegRef); |
||||
Console.WriteLine(delegVar_NestedDelegRef); |
||||
Console.WriteLine(stateFullVar_NestedDelegRef); |
||||
Console.WriteLine(stateLessVar_NestedDelegRef); |
||||
}; |
||||
|
||||
System.Diagnostics.Debugger.Break(); |
||||
}; |
||||
deleg(401); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
#if TEST_CODE
|
||||
namespace Debugger.Tests { |
||||
using System.Linq; |
||||
|
||||
public partial class DebuggerTests |
||||
{ |
||||
[NUnit.Framework.Test] |
||||
public void CompilerGeneratedClasses() |
||||
{ |
||||
StartTest("CompilerGeneratedClasses.cs"); |
||||
ObjectDump("YieldLocalVariables", |
||||
process.SelectedStackFrame.MethodInfo.LocalVariables. |
||||
Select(v => new { v.Name, Value = v.GetValue(process.SelectedStackFrame) }) |
||||
); |
||||
process.Continue(); |
||||
ObjectDump("DelegateLocalVariables", |
||||
process.SelectedStackFrame.MethodInfo.LocalVariables. |
||||
Select(v => new { v.Name, Value = v.GetValue(process.SelectedStackFrame) }) |
||||
); |
||||
EndTest(); |
||||
} |
||||
} |
||||
} |
||||
#endif
|
||||
|
||||
#if EXPECTED_OUTPUT
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<DebuggerTests> |
||||
<Test |
||||
name="CompilerGeneratedClasses.cs"> |
||||
<ProcessStarted /> |
||||
<ModuleLoaded>mscorlib.dll (No symbols)</ModuleLoaded> |
||||
<ModuleLoaded>CompilerGeneratedClasses.exe (Has symbols)</ModuleLoaded> |
||||
<DebuggingPaused>Break CompilerGeneratedClasses.cs:35,5-35,41</DebuggingPaused> |
||||
<YieldLocalVariables> |
||||
<Item> |
||||
<AnonymousType |
||||
Name="stateLessVar" |
||||
Value="stateLessVar = 201" /> |
||||
</Item> |
||||
<Item> |
||||
<AnonymousType |
||||
Name="deleg" |
||||
Value="deleg = null" /> |
||||
</Item> |
||||
</YieldLocalVariables> |
||||
<DebuggingPaused>Break CompilerGeneratedClasses.cs:51,6-51,42</DebuggingPaused> |
||||
<DelegateLocalVariables> |
||||
<Item> |
||||
<AnonymousType |
||||
Name="delegVar" |
||||
Value="delegVar = 301" /> |
||||
</Item> |
||||
<Item> |
||||
<AnonymousType |
||||
Name="nestedDeleg" |
||||
Value="nestedDeleg = {IntDelegate}" /> |
||||
</Item> |
||||
</DelegateLocalVariables> |
||||
<ProcessExited /> |
||||
</Test> |
||||
</DebuggerTests> |
||||
#endif // EXPECTED_OUTPUT
|
Loading…
Reference in new issue