- print ' _write__%s(%s, %s);' % (polymorphic.tag, polymorphic.switchExpr, instance)
+ if polymorphic.contextLess:
+ print ' _write__%s(%s, %s);' % (polymorphic.tag, polymorphic.switchExpr, instance)
+ else:
+ print ' switch (%s) {' % polymorphic.switchExpr
+ for cases, type in polymorphic.iterSwitch():
+ for case in cases:
+ print ' %s:' % case
+ self.visit(type, 'static_cast<%s>(%s)' % (type, instance))
+ print ' break;'
+ print ' }'