type Query { id: ID! field( arg: Int @invalidExample, ): String } directive @invalidExample( arg: String @invalidExample, ) on ARGUMENT_DEFINITION extend scalar String @deprecatedType(reason: "use OurCustomString instead") directive @deprecatedType(reason: String!) on OBJECT | INTERFACE | ENUM | SCALAR | UNION directive @loopA( arg: Boolean @loopB, ) on ARGUMENT_DEFINITION directive @loopB( arg: Boolean @loopC, ) on ARGUMENT_DEFINITION directive @loopC( arg: Boolean @loopA, ) on ARGUMENT_DEFINITION enum Enum { NON_RECURSIVE } extend enum Enum { RECURSIVE @wrong } input Name { value: String! type: Enum } input InputObject { name: Name } directive @wrong(input: InputObject) on INPUT_FIELD_DEFINITION | ENUM_VALUE directive @thisOneShouldNotError( arg: Boolean @loopC, ) on FIELD