X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Ftests%2Ftest-async-22.cs;h=e715d1a4598cd3d4fe5d26a5e90624e99bd2f113;hb=d42301073e2d8dccc3bd32ce9110eec904c4e710;hp=079fb813a045ea10d30f676642f90abaed25bd8e;hpb=c0a8ef12af1f473bfc837325581fe738f1b3178c;p=mono.git diff --git a/mcs/tests/test-async-22.cs b/mcs/tests/test-async-22.cs index 079fb813a04..e715d1a4598 100644 --- a/mcs/tests/test-async-22.cs +++ b/mcs/tests/test-async-22.cs @@ -1,9 +1,8 @@ using System; using System.Threading.Tasks; -// contextual async during parsing - -class A +// contextual async, parser tests +class A : Iasync { async Task async () { @@ -21,6 +20,10 @@ class A var res = (int) await async (); var res2 = (Int32) await async (); } + + async void Iasync.async () + { + } public static int Main () { @@ -28,6 +31,11 @@ class A } } +interface Iasync +{ + void async (); +} + class B { class async @@ -52,6 +60,15 @@ class C } } +class D +{ + enum E {} + + async Task M () + { + } +} + class async { async (async arg) @@ -71,4 +88,99 @@ class await class asyncAttribute: Attribute { delegate async async (async async); -} \ No newline at end of file +} + +namespace AsyncNS +{ + class Classes + { + class async + { + } + + void M () + { + async local; + } + } + + namespace Namespaces + { + namespace async { } + } +} + +namespace AwaitNS +{ + class Formals + { + delegate void D (int x); + static void M1 () + { + D d1 = await => { }; + D d2 = (int await) => { }; + D d3 = delegate (int await) { }; + } + } + + class Methods + { + void await () { } + void M (Methods m) + { + m.await (); + this.await (); + // FIXME: await (); + } + } + + class Classes + { + class await { } + void M () + { + // FIXME: @await local = new @await (); + } + } + + class AnonTypes + { + static void M () + { + var x = new { await = 1 }; + var y = x.await; + int await = 2; + var x2 = new { await }; + } + } + + class Initializer + { + int await; + + static void M () + { + var a = new Initializer () { + await = 2 + }; + } + } + + class MemberAccess + { + static void M () + { + var await = new string[0]; + var l = await.Length; + } + } + + class TypeChecks + { + static void M (object await) + { + var b = await is Exception; + var c = await as Exception; + } + } +}