False negative with TailCall attribute #18365
Labels
Area-Compiler-Optimization
The F# optimizer, release code gen etc.
Bug
Impact-Low
(Internal MS Team use only) Describes an issue with limited impact on existing code.
Milestone
Repro steps
Consider the following code (the simplest example I could craft, don't expect anything sane):
fooArray
isn't called in tail recursive manner, however compiler does not issue a warning.Curiously, after rewrite to Seq functions compiler does issue
Warning FS3569 : The member or function 'fooSeq' has the 'TailCallAttribute' attribute, but is not being used in a tail recursive way.
Looking at decompiled code of assembly I would guess that compiler tries to optimise Array.map and TailCall analyser mistakes the result for tail-recursive function.
Expected behavior
Warning is issued for first code example.
Actual behavior
No warning.
Known workarounds
.
Related information
Provide any related information (optional):
.NET SDK 9.0.200
The text was updated successfully, but these errors were encountered: