示例#1
0
         return '__o_{}'.format(info.name)
     else:
         return '__o'
 
 FuncDef make_generic_wrapper_init(self, TypeInfo info):
     """Build constructor of a generic wrapper class."""
     nslots = num_slots(info)
     
     cdefs = <Node> []
     
     # Build superclass constructor call.
     if info.base.full_name() != 'builtins.object' and self.tf.is_java:
         s = SuperExpr('__init__')
         cargs = <Node> [NameExpr('__o')]
         for n in range(num_slots(info.base)):
             cargs.append(NameExpr(tvar_arg_name(n + 1)))
         for n in range(num_slots(info.base)):
             cargs.append(NameExpr(tvar_arg_name(n + 1, BOUND_VAR)))
         c = CallExpr(s, cargs, [nodes.ARG_POS] * len(cargs))
         cdefs.append(ExpressionStmt(c))
     
     # Create initialization of the wrapped object.
     cdefs.append(AssignmentStmt([MemberExpr(
                                      self_expr(),
                                      self.object_member_name(info),
                                      direct=True)],
                                 NameExpr('__o')))
     
     # Build constructor arguments.
     args = [Var('self'), Var('__o')]
     Node[] init = [None, None]