Understaing code of NODE.add_serach operator

tl;dr : What is the purpose of settings property.

https://developer.blender.org/diffusion/B/browse/master/release/scripts/startup/bl_operators/node.py;118fb9f1f7436e6c8cd3ccae7c6c2c12f0c1b9fc$193

In search_add operator, execute method
there is this code

if item:
            print(item.settings)
            # apply settings from the node item
            for setting in item.settings.items():
                ops = self.settings.add()
                ops.name = setting[0]
                ops.value = setting[1]

            self.create_node(context, item.nodetype)

and create_node method

 def create_node(self, context, node_type=None):
        space = context.space_data
        tree = space.edit_tree

        if node_type is None:
            node_type = self.type

        # select only the new node
        for n in tree.nodes:
            n.select = False

        node = tree.nodes.new(type=node_type)
        for setting in self.settings:
            # XXX catch exceptions here?
            value = eval(setting.value)

            try:
                setattr(node, setting.name, value)
            except AttributeError as e:
                self.report(
                    {'ERROR_INVALID_INPUT'},
                    "Node has no attribute " + setting.name)
                print(str(e))
                # Continue despite invalid attribute

        node.select = True
        tree.nodes.active = node
        node.location = space.cursor_location
        return node

I tried to print item.settings but it is empty dictionary.
From the looks of it looks like setting property is to set the different properties of node after it had been added, like setting the math operation to something other than add. but while executing add_search in blender code

for setting in item.settings.items():
                ops = self.settings.add()
                ops.name = setting[0]
                ops.value = setting[1]

never gets executed. I might be wrong here beacuase of my lack of knowledge.

So, What is the purpose of for loop and setting properties?