At certain times, LilyPond treats \defaultchild as an implicit \accept with a higher priority than any explicit \accept. When a user intends to change what is acceptable with \denies C, LilyPond should cancel a prior \defaultchild C in addition to a prior \accept C. If \defaultchild C is not cancelled (the behavior of 2.19.80), the context C remains implicitly acceptable.
A related issue that might be addressed at the same time is that LilyPond seems not to honor either \denies or \defaultchild in \with blocks.
Issue 5332: \denies C should cancel \defaultchild
This also makes context modifications consistent with context
definitions in using the last \defaultchild command rather than the
first.
http://codereview.appspot.com/346050043
Passes make, make check and a full make doc.
Patch on countdown for June 4th
Patch counted down - please push.
Pushed to staging:
commit 82954c37b09be22fbb46b00b0bb8e180fcef020c (HEAD -> pushed/issue-5332-context-denies-defaultchild, origin/staging)
Author: Dan Eble nine.fierce.ballads@gmail.com
Date: Mon May 28 17:16:46 2018 -0400
commit 52784fdc328d7cb3dde4d5469aec37b170e4a08e
Author: Dan Eble nine.fierce.ballads@gmail.com
Date: Mon May 28 17:15:07 2018 -0400
commit cbfb6edc8523e5dffdac40aad39f75f9a26522fa
Author: Dan Eble nine.fierce.ballads@gmail.com
Date: Mon May 28 17:14:33 2018 -0400