# check if completion item is still selected
var cInfo = complete_info()
- if cInfo->empty()
- || !cInfo.pum_visible
- || cInfo.selected == -1
- || cInfo.items[cInfo.selected]->type() != v:t_dict
- || cInfo.items[cInfo.selected].user_data->type() != v:t_dict
- || cInfo.items[cInfo.selected].user_data.label != cItem.label
+ if cInfo->empty() || !cInfo.pum_visible || cInfo.selected == -1
+ return
+ endif
+
+ var selItem = cInfo.items->get(cInfo.selected, {})
+ if selItem->empty()
+ || selItem->type() != v:t_dict
+ || selItem.user_data->type() != v:t_dict
+ || selItem.user_data.label != cItem.label
return
endif