using System;
public class Tester
{
public static void Main()
{
TestError();
}
static void Test(Action a) { Console.WriteLine("Action"); }
static void TestError()
{
bool throwException = true;
//Resolves to Test(Action a)
Test(() =>
{
});
//Resolves to Test(Action a)
Test(() =>
{
if (throwException) throw new Exception();
});
//Resolves to Test(Func<int> a) (This seems like a bug since there is no return value)
Test(() =>
{
throw new Exception();
});
}
}
dXNpbmcgU3lzdGVtOwpwdWJsaWMgY2xhc3MgVGVzdGVyCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQlUZXN0RXJyb3IoKTsKCX0KICAgIApzdGF0aWMgdm9pZCBUZXN0KEFjdGlvbiBhKSB7IENvbnNvbGUuV3JpdGVMaW5lKCJBY3Rpb24iKTsgfQpzdGF0aWMgdm9pZCBUZXN0RXJyb3IoKQp7CiAgICBib29sIHRocm93RXhjZXB0aW9uID0gdHJ1ZTsKICAgIC8vUmVzb2x2ZXMgdG8gVGVzdChBY3Rpb24gYSkKICAgIFRlc3QoKCkgPT4KICAgIHsKICAgIH0pOwogICAgLy9SZXNvbHZlcyB0byBUZXN0KEFjdGlvbiBhKQogICAgVGVzdCgoKSA9PgogICAgewogICAgICAgIGlmICh0aHJvd0V4Y2VwdGlvbikgdGhyb3cgbmV3IEV4Y2VwdGlvbigpOwogICAgfSk7CiAgICAvL1Jlc29sdmVzIHRvIFRlc3QoRnVuYzxpbnQ+IGEpIChUaGlzIHNlZW1zIGxpa2UgYSBidWcgc2luY2UgdGhlcmUgaXMgbm8gcmV0dXJuIHZhbHVlKQogICAgVGVzdCgoKSA9PgogICAgewogICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oKTsKICAgIH0pOwp9ICAgIAp9