inline for and i->part var swap