Ejemplo n.º 1
0
    def demoteClosureVariable(self, variable):
        assert variable.isLocalVariable()

        self.taken.remove(variable)

        assert variable.getOwner() is not self

        new_variable = Variables.LocalVariable(
            owner=self, variable_name=variable.getName())

        self.providing[variable.getName()] = new_variable

        updateVariableUsage(provider=self,
                            old_variable=variable,
                            new_variable=new_variable)

        VariableRegistry.addVariableUsage(new_variable, self)
Ejemplo n.º 2
0
    def demoteClosureVariable(self, variable):
        assert variable.isLocalVariable()

        self.taken.remove(variable)

        assert variable.getOwner() is not self

        new_variable = Variables.LocalVariable(
            owner         = self,
            variable_name = variable.getName()
        )

        self.providing[variable.getName()] = new_variable

        updateVariableUsage(
            provider     = self,
            old_variable = variable,
            new_variable = new_variable
        )

        VariableRegistry.removeVariableUsage(variable, self)
        VariableRegistry.addVariableUsage(new_variable, self)