public FieldInfo(Types.IType declaringType, FieldNode field)
 {
     DeclaringType = declaringType
                     ?? throw new ArgumentNullException(nameof(declaringType));
     Field = field
             ?? throw new ArgumentNullException(nameof(field));
     ResponseName = Field.Alias == null
         ? Field.Name.Value
         : Field.Alias.Value;
 }
        protected override void VisitField(
            FieldNode field,
            Types.IType type,
            ImmutableStack <ISyntaxNode> path)
        {
            if (TryGetSelectionSet(path, out SelectionSetNode selectionSet) &&
                _fieldSelectionSets.TryGetValue(selectionSet,
                                                out List <FieldInfo> fields))
            {
                fields.Add(new FieldInfo(type, field));
            }

            base.VisitField(field, type, path);
        }