示例#1
0
 def record_dependencies(self):
     if not self.value:
         return
     eq = self.value._dict.key_eq
     hash = self.value._dict.key_hash
     self.comparer = EqualityComparer(self.db, self.value._TYPE._KEYTYPE, eq, hash)
     self.db.pending_node(self.comparer)
     super(CLICustomDictConst, self).record_dependencies()
示例#2
0
    def render(self, generator, op):
        DICT = op.args[0].value
        comparer = EqualityComparer(generator.db, DICT._KEYTYPE,
                                    (op.args[1], op.args[2], op.args[3]),
                                    (op.args[4], op.args[5], op.args[6]))
        generator.db.pending_node(comparer)
        dict_type = generator.cts.lltype_to_cts(DICT)

        generator.ilasm.new(comparer.get_ctor())
        generator.ilasm.new('instance void %s::.ctor(class'
                            '[mscorlib]System.Collections.Generic.IEqualityComparer`1<!0>)'
                            % dict_type)