anchor.diff:  msg_decoder_initial_params(MsgName, MsgDef, Defs, TrUserDataVar, AnRes, Opts) ->
       ExprInfos1 =
           [case Field of
  -             #?gpb_field{name=FName, occurrence=Occurrence, type=Type} ->
  +             #?gpb_field{name=FName, occurrence=Occurrence, type=Type,
  +                         opts=FOpts} ->
                    {Undefined, Undef} =
                        case gpb:is_msg_proto3(MsgName, Defs) of
                            true ->
  
positive.code:                 records ->
                      [record_create(
                         MsgName,
                         [{FName, Expr} || {FName, m, Expr, _} <- ExprInfos2])];
                  {maps, present_undefined} ->
                      [map_create(
                         [{FName, Expr} || {FName, _, Expr, _} <- ExprInfos2])];
  
negative.code:                          false ->
                               {?expr(undefined), ?expr('$undef')}
                       end,
                   HasDefault = lists:keymember(default, 1, FOpts),
                   case Occurrence of
                       repeated -> {FName, m, ?expr([]),        ?expr([])};
                       required -> {FName, o, ?expr(undefined), ?expr('$undef')};
                       optional ->
                           if HasDefault -> {FName, d, Undefined, Undef};
                              true       -> {FName, o, Undefined, Undef}
                           end
                   end;
               #gpb_oneof{name=FName} ->
                   {FName, o, ?expr(undefined), ?expr('$undef')}
  