anchor.diff:  struct_get(Value, Line, Attrs, Fun) ->
       AttrAst = if
           Fun == get ->
  -            erl_parse:abstract(Attrs);
  +            abstract_struct_attrs(Attrs, Line);
           Fun == getx ->
  -            erl_parse:abstract(hd(Attrs))
  +            abstract_struct_attrs(hd(Attrs), Line)
       end,
   
       {call, Line,
  
positive.code:             [Value, AttrListAst, Literal]}.
  
  struct_query(Var, Line, Attrs) ->
      AttrListAst = erl_parse:abstract(Attrs),
  
      {call, Line,
          {remote, Line,
              {atom, Line, struct}, {atom, Line, has}},
              [Var, AttrListAst]}.
  
  check_clauses_arity([], _Count) ->
      ok;
  
negative.code: struct_attrs -> struct_attr : ['$1'].
  
  struct_attr -> dot atom : unwrap('$2').
  struct_attr -> dot var : '$2'.
  
  struct_call -> struct_get fn_parameters :
      {Var, Line, _Last, Attrs} = '$1',
  