From 43340e5dbb659478a26a59c5c0174cc56979ec4e Mon Sep 17 00:00:00 2001 From: Llewellyn Pritchard Date: Tue, 1 Dec 2015 16:35:24 +0200 Subject: [PATCH] Add tests --- .../Semantics/OverloadResolutionTests.cs | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/Compilers/CSharp/Test/Semantic/Semantics/OverloadResolutionTests.cs b/src/Compilers/CSharp/Test/Semantic/Semantics/OverloadResolutionTests.cs index dc2897930a7..e5a1c2c89f8 100644 --- a/src/Compilers/CSharp/Test/Semantic/Semantics/OverloadResolutionTests.cs +++ b/src/Compilers/CSharp/Test/Semantic/Semantics/OverloadResolutionTests.cs @@ -601,6 +601,32 @@ public static void M() ); } + [Fact] + public void TestRefOutAnonymousDelegate() + { + string source = @" +using System; +class p +{ + static void Foo(ref Func a) { } + static void Bar(out Func a) { a = null; } + + static void Main() + { + Foo(x => x); + Bar(x => x); + } +}"; + + CreateCompilationWithMscorlib(source).VerifyDiagnostics( + // (10,21): error CS1503: Argument 1: cannot convert from 'lambda expression' to 'ref Func' + // Foo(x => x); + Diagnostic(ErrorCode.ERR_BadArgType, "x => x").WithArguments("1", "lambda expression", "ref System.Func").WithLocation(10, 21), + // (11,21): error CS1503: Argument 1: cannot convert from 'lambda expression' to 'out Func' + // Bar(x => x); + Diagnostic(ErrorCode.ERR_BadArgType, "x => x").WithArguments("1", "lambda expression", "out System.Func").WithLocation(11, 21)); + } + [Fact, WorkItem(1157097, "DevDiv"), WorkItem(2298, "https://github.com/dotnet/roslyn/issues/2298")] public void TestOverloadResolutionTiebreaker() -- GitLab