https://issues.dlang.org/show_bug.cgi?id=12605
Issue ID: 12605
Summary: Calculate proper common type of lambdas
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P1
Component: DMD
Assignee: [email protected]
Reporter: [email protected]
Currently this code:
pragma(msg, typeof(true ? (x => x) : ((int x) => x * 2)));
prints 'void'. But it could print 'int function(int)' by fitting parameter
types.
More cases:
pragma(msg, typeof(true ? (()=>1) : (()=>1.0)));
// fitting return types - could be 'double function()'
pragma(msg, typeof(true ? ((int x) => 1) : (delegate(int x)=>1)));
// fitting context type --> could be 'int delegate(int)'
--