public override ILoopContract GetLoopContractFor(object loop) { var loopContract = base.GetLoopContractFor(loop); if (loopContract == null) { loopContract = underlyingContractExtractor.GetLoopContractFor(loop); AssociateLoopWithContract(loop, loopContract); } return(loopContract); }