Skip to content

Commit d7aa129

Browse files
magicmarkbenjie
andcommitted
Apply suggestions from code review
Co-authored-by: Benjie <[email protected]>
1 parent 4982843 commit d7aa129

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

spec/Section 3 -- Type System.md

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2252,23 +2252,26 @@ DirectiveArgumentCoordinate : @ Name ( Name : )
22522252
_schema element_ within a GraphQL Schema.
22532253

22542254
:: A _schema element_ can be a named type, a field, an input field, an enum
2255-
value, a field argument, a directive, or a directive argument.
2255+
value, a field argument, a directive, or a directive argument defined within a
2256+
schema (including built-in types and directives).
2257+
2258+
Note: Meta-fields are not defined within a schema, and thus are not _schema
2259+
element_. By extension, an introspection type is not a _schema element_.
22562260

22572261
:: The _containing element_ of a _schema element_ is the schema element with one
22582262
fewer {Name} token that syntactically contains it. Specifically:
22592263

2260-
- {MemberCoordinate} has a {TypeCoordinate} containing element.
2261-
- {ArgumentCoordinate} has a {MemberCoordinate} containing element.
2262-
- {DirectiveArgumentCoordinate} has a {DirectiveCoordinate} containing element.
2264+
- The containing element of an {ArgumentCoordinate} is a {MemberCoordinate}.
2265+
- The containing element of a {MemberCoordinate} is a {TypeCoordinate}.
2266+
- The containing element of a {DirectiveArgumentCoordinate} is a {DirectiveCoordinate}.
22632267
- {TypeCoordinate} and {DirectiveCoordinate} have no containing element.
22642268

2265-
A _schema coordinate_ is always unique. Each non meta-field _schema element_ can
2266-
be referenced by exactly one possible schema coordinate.
2269+
A _schema coordinate_ is always unique. Each _schema element_ can be referenced
2270+
by exactly one possible schema coordinate.
22672271

22682272
A _schema coordinate_ may refer to either a defined or built-in _schema
22692273
element_. For example, `String` and `@deprecated(reason:)` are both valid schema
2270-
coordinates which refer to built-in schema elements. Meta-fields may also be
2271-
referenced. For example, `Business.__typename` is a valid schema coordinate.
2274+
coordinates which refer to built-in schema elements.
22722275

22732276
Note: Union members are not valid _schema coordinate_ as they reference existing
22742277
types in the schema. This preserves the uniqueness property of a _schema
@@ -2290,6 +2293,11 @@ If the _schema element_ cannot be found, the resolve function will not yield a
22902293
value (without raising an error). However, an error will be raised if any
22912294
non-leaf nodes within a _schema coordinate_ cannot be found in the {schema}.
22922295

2296+
Note: Although it is syntactically possible to describe a meta-field or element
2297+
of the introspection schema with a schema coordinate (e.g. `Business.__typename`
2298+
or `__Type.fields(includeDeprecated:)`), they are not _schema element_ and
2299+
therefore resolving such coordinates results in implementation-defined behavior.
2300+
22932301
TypeCoordinate : Name
22942302

22952303
1. Let {typeName} be the value of {Name}.
@@ -2336,16 +2344,6 @@ DirectiveArgumentCoordinate : @ Name ( Name : )
23362344
5. Return the argument of {directive} named {directiveArgumentName} if it
23372345
exists.
23382346

2339-
**Resolving Meta-fields**
2340-
2341-
Resolving the _schema coordinate_ of a meta-field is undefined behavior, since
2342-
these fields may be implemented in such a way that makes it impossible to return
2343-
a unique value specific to that instance of the meta-field.
2344-
2345-
Therefore, it is left up to the implementation to decide whether or not to
2346-
return a value for a meta-field. If a value is returned, it must meet the
2347-
requirement that it is unique to that _schema coordinate_.
2348-
23492347
**Examples**
23502348

23512349
| Element Kind | _Schema Coordinate_ | _Schema Element_ |

0 commit comments

Comments
 (0)