Bug 40493

Summary: Invalid IL when using ?. operator on a Func<T> parameter in a generic function when T is unconstrained
Product: [Mono] Compilers Reporter: Michał Przybyś <michal>
Component: C#Assignee: Marek Safar <masafa>
Severity: normal CC: mono-bugs+mono
Priority: ---    
Version: 4.2.0 (C6)   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Tags: Is this bug a regression?: ---
Last known good build:

Description Michał Przybyś 2016-04-18 19:56:13 UTC
The following code is compiled by mcs and throws an InvalidProgramException when run:

using System;

static class Program
    static void Bug<T>(Func<T> func)
    static void Main()
        Bug(() => 123);

csc from VS2015 on the other hand returns error "CS0023: Operator '?' cannot be applied to operand of type 'T'" unless there is a constraint on T.

Reproduced both on Ubuntu with mono and FreeBSD with mono
Comment 1 Marek Safar 2016-04-20 12:33:33 UTC
Fixed in master and 4.5 preview