def removeUserVariable(self, variable): assert variable in self.providing.values(), (self.providing, variable) del self.providing[variable.getName()] assert not variable.isParameterVariable() or \ variable.getOwner() is not self VariableRegistry.removeVariableUsage(variable, self)
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)
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)