Closes #395 with a non-breaking solution. Not quite ideal, but good enough; argument fields and input object fields now use derived classes, and an extension method to ASTNode provides the directive location.
Other non-breaking options:
Move the method into ASTNode and override it in each derived class
Return null instead of throwing in case of error
Breaking options:
Move the method into IHasDirectives
Make the GraphQLInputValueDefinition ctor internal
Remove support for parsing into an GraphQLInputValueDefinition class
Closes #395 with a non-breaking solution. Not quite ideal, but good enough; argument fields and input object fields now use derived classes, and an extension method to ASTNode provides the directive location.
Other non-breaking options:
Breaking options: