promiseHasNoNetEffectOnStateVector() {
        this.gate._stableDuration = Infinity;
        this.gate._hasNoEffect = true;
        this.gate._isDefinitelyUnitary = true;
        this.gate._effectPermutesStates = false;
        this.gate._effectCreatesSuperpositions = false;
        return this;
    }
Indicates that the gate can be skipped over when computing the system state.

Note that Input gates and Z controls meet this definition, because their effects happen via other gates
conditioning on them. X and Y controls don't meet the definition because they have to perform a temporary
basis change which counts as a change.

@returns {!GateBuilder}