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 ***