I'm not sure why this warning occurs? Can you not have unused arguments (marked as unused) in lexical scope?
hierarchy--create-delayed-tree-widget calls widget-convert to create tree-widgets but, in the case of delayed children, provides an :expander to load when the child is called for; the :expander expects a function that can take a single argument: the widget you're making children for.
I assume it's so your function can figure out what the children should be, depending on what the parent widget is.
However, Hierarchy already computes the children with the childrenfn a user can pass in so the parent widget is entirely unnecessary for us; so I marked is as unused by prefacing the variable name with an underscore, as I thought was the convention.
Is my understanding mistaken? Does it, say, have to only be an underscore for the argument rather than a name which starts with an underscore? I thought just starting with an underscore sufficed.