case IDLN_FORWARD_DCL: node = IDL_FORWARD_DCL(tfd->tree).ident; break;
find_interfaces(IDL_tree_func_data *tfd, gpointer user_data){    IDL_tree node = NULL;    switch (IDL_NODE_TYPE(tfd->tree)) {      case IDLN_ATTR_DCL:        node = IDL_ATTR_DCL(tfd->tree).param_type_spec;        break;      case IDLN_OP_DCL:         IDL_tree_walk_in_order(IDL_OP_DCL(tfd->tree).parameter_dcls, find_interfaces,                               user_data);        node = IDL_OP_DCL(tfd->tree).op_type_spec;        break;      case IDLN_PARAM_DCL:        node = IDL_PARAM_DCL(tfd->tree).param_type_spec;        break;      case IDLN_INTERFACE:        node = IDL_INTERFACE(tfd->tree).inheritance_spec;        if (node)            xpidl_list_foreach(node, add_interface_maybe, user_data);        node = IDL_INTERFACE(tfd->tree).ident;        break;      default:        node = NULL;    }    if (node && IDL_NODE_TYPE(node) == IDLN_IDENT) {        IDL_tree_func_data tfd;        tfd.tree = node;        add_interface_maybe(&tfd, user_data);    }    return TRUE;}