Bug 13986 – auto return for some recursive functions

Status
RESOLVED
Resolution
DUPLICATE
Severity
enhancement
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2015-01-15T17:57:55Z
Last change time
2022-03-21T08:25:43Z
Assigned to
No Owner
Creator
bearophile_hugs

Comments

Comment #0 by bearophile_hugs — 2015-01-15T17:57:55Z
According to Wikipedia: http://en.wikipedia.org/wiki/C%2B%2B14#Function_return_type_deduction C++14 is able to compile code like this: auto correct(int i) { if (i == 1) return i; else return correct(i - 1) + i; } But not like this: auto correct(int i) { if (i != 1) return correct(i - 1) + i; else return i; } D isn't able to compile both. Is it possible and a good idea to allow the first function in D too? The D spec says: "If multiple return expressions are used in the function's implementation, then they must all deduce the same type."
Comment #1 by pro.mathias.lang — 2022-03-21T08:25:43Z
*** This issue has been marked as a duplicate of issue 5288 ***