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)'
Comment #1 by robert.schadek — 2024-12-13T18:19:52Z