https://issues.dlang.org/show_bug.cgi?id=23234
--- Comment #4 from RazvanN <razvan.nitu1...@gmail.com> --- This issue is invalid. The return type of a delegate should be decided based upon what the function returns, not on how the returned result is used. For example, consider this code: alias fd = () => foo; test(fd); By the time the compiler calls test, fd's type has already been established to foo. The fact that -vcg-ast shows that the delegate return contains a cast to Bar is indeed a bug, however, the expectation that it should return `foo.get` is not justified. --