message: Use a more accurate type in getFragmentDefinitions
  This squashes a bunch of errors and exposes some other ones, but the net
  effect is beneficial (dropping from 131 errors to 112), and this type
  and node is strictly more correct than what we had before, so this is an
  improvement.
diff: * @flow
  */
  -import type {ASTNode, GraphQLDirective, GraphQLSchema} from 'graphql';
  +import type {
  + FragmentDefinitionNode,
  + GraphQLDirective,
  + GraphQLSchema,
  +} from 'graphql';
  import type {
  CompletionItem,
  ContextToken,
  @@ -292,7 +296,9 @@ function getSuggestionsForFragmentSpread(
  );
  }
  -function getFragmentDefinitions(queryText: string): Array<ASTNode> {
  +function getFragmentDefinitions(
  + queryText: string,
  +): Array<FragmentDefinitionNode> {
  const fragmentDefs = [];
  runOnlineParser(queryText, (_, state) => {
  if (state.kind === 'FragmentDefinition' && state.name && state.type) {
  @@ -302,6 +308,10 @@ function getFragmentDefinitions(queryText: string): Array<ASTNode> {
  kind: 'Name',
  value: state.name,
  },
  + selectionSet: {
  + kind: 'SelectionSet',
  + selections: [],
  + },
  typeCondition: {
  kind: 'NamedType',
  name: {
  