def _afterpass(self):
        """Assign a function-local index to each child object and register
            write operations to variables.

            This should only be called after the object is fully built.
        """
        if hasattr(self, '_fi'):
            return
        fi = 0
        for codeobj in self.walk_preorder():
            codeobj._fi = fi
            fi += 1
            if isinstance(codeobj, CodeOperator) and codeobj.is_assignment:
                if codeobj.arguments and isinstance(codeobj.arguments[0],
                                                    CodeReference):
                    var = codeobj.arguments[0].reference
                    if isinstance(var, CodeVariable):
                        var.writes.append(codeobj)
Assign a function-local index to each child object and register
            write operations to variables.

            This should only be called after the object is fully built.