def alloc_temp(self, type_='<STR_LIT>'):
for v in sorted(self.free_temps, key=lambda k: k.name):<EOL><INDENT>if v.type_ == type_:<EOL><INDENT>self.free_temps.remove(v)<EOL>self.used_temps.add(v)<EOL>return v<EOL><DEDENT><DEDENT>self.temp_index += <NUM_LIT:1><EOL>name = '<STR_LIT>'.format(self.temp_index)<EOL>v = expr.GeneratedTempVar(self, name, type_)<EOL>self.used_temps.add(v)<EOL>return v<EOL>
Create a new temporary Go variable having type type_ for this block.