We should move t.nano.auditors to after t.nano.mix and use the dynamic guard information to determine whether a static audition is possible. We should also refactor the static DeepFrozen pass away; I think that it can mostly be satisfied by running the actual DF auditor directly.
class DischargeAuditors(MixIR.selfPass()):
def visitObjectExpr(self, doc, patt, guards, auditors, script, mast,
layout, clipboard):
if auditors and not layout.frameTable.dynamicGuards:
import pdb; pdb.set_trace()
Before we can do this, we must figure out what happens to statically-discharged as-auditors; do they still move to the guard of the pattern?
We should move t.nano.auditors to after t.nano.mix and use the dynamic guard information to determine whether a static audition is possible. We should also refactor the static DeepFrozen pass away; I think that it can mostly be satisfied by running the actual DF auditor directly.
Before we can do this, we must figure out what happens to statically-discharged as-auditors; do they still move to the guard of the pattern?