NullSafeAccumulator bracketAccess(Expression arg, boolean nullSafe) {
    chain.add(new Bracket(arg, nullSafe));
    // With a bracket access we no longer need to unpack the entire list, just a singular object.
    accessType = AccessType.SINGULAR;
    return this;
  }
NullSafeAccumulator bracketAccess ( Expression arg , boolean nullSafe ) { chain . add ( new Bracket ( arg , nullSafe ) ) ; accessType = AccessType . SINGULAR ; return this ; }
Extends the access chain with a bracket access to the given value.

@param nullSafe If true, code will be generated to ensure the chain is non-null before
dereferencing {@code arg}.