Programming error with slur removed by \partCombine
In a private discussion with Dimitris Marinakis, it emerged that the following code:
\version "2.25.3"
\partCombine { c'( d'~ d' f') } { c'( d'~ d' f') }
raises a programming error in 2.25.3 due to commit 7a473d28:
warning: direction of grob dead Spanner must be UP or DOWN; using UP
The reason for this is pretty obscure. It seems that \partCombine
leaves both slurs alive. However, one of them is dangling and has an empty note-columns
array. Then, when ly:slur::calc-direction
is called by ly:slur::pure-height
, it suicides the grob and returns #f
for the direction, triggering the warning.
The reason the tie is necessary to reproduce is that due to how ly:slur::calc-cross-staff
uses refpoints, it returns #t
on such a slur without note columns if there isn't something other than a separation item in its encompass-objects
array.
I have to see what the best solution here is. \partCombine
probably ought to remove such slurs itself.