anchor.diff:          no ->
               gpb_codegen:format_fn(
                 FnName,
  -              fun(Msg, Bin) ->
  -                      SubBin = '<encode-msg>'(Msg, <<>>),
  +              fun(Msg, Bin, TrUserData) ->
  +                      SubBin = '<encode-msg>'(Msg, <<>>, TrUserData),
                         Bin2 = e_varint(byte_size(SubBin), Bin),
                         <<Bin2/binary, SubBin/binary>>
                 end,
  
positive.code:                 true when P3TypeDefaultHandling == p3_check_typedefaults,
                            Type == string ->
                      ?expr(begin
                                'TrF' = 'Tr'('<F>'),
                                case iolist_size('TrF') of
                                    0 ->
                                        '<Bin>';
                                    _ ->
                                        '<enc>'('TrF',
                                                <<'<Bin>'/binary, '<Key>'>>)
                                end
                            end,
                            Transforms);
                  _not_proto3_or_no_check_for_typedefaults ->
                      ?expr(
                         begin
                             'TrF' = 'Tr'('<F>'),
                             '<enc>'('TrF', <<'<Bin>'/binary, '<Key>'>>)
                         end,
                         Transforms)
              end
      end;
  field_encode_expr(MsgName, MsgVar, #gpb_oneof{name=FName, fields=OFields},
                    FVar, PrevBVar, Defs, Tr, AnRes, Opts,
                    _P3TypeDefaultHandling) ->
      OFVar = prefix_var("O", FVar),
      OneofClauseTransforms =
  
negative.code:     PackedFnName = mk_fn(e_pfield_, MsgName, FName),
      [gpb_codegen:format_fn(
         FnName,
         fun(Elems, Bin, _TrUserData) when Elems =/= [] ->
                 Bin2 = <<Bin/binary, '<KeyBytes>'>>,
                 Bin3 = e_varint(length(Elems) * '<ElemLen>', Bin2),
                 '<encode-packed>'(Elems, Bin3);
            ([], Bin, _TrUserData) ->
                 Bin
         end,
         [splice_trees('<KeyBytes>', KeyBytes),
  