fix struct/dc's flat-contract mode predicate