diff --git a/spec/Section 3 -- Type System.md b/spec/Section 3 -- Type System.md index 046d14677..949aa5a8e 100644 --- a/spec/Section 3 -- Type System.md +++ b/spec/Section 3 -- Type System.md @@ -735,11 +735,11 @@ query withNullableVariable($var: String) { Hence, if the value for a Non Null type is hard-coded in the query, it is always coerced using the input coercion for the wrapped type. -When a Non Null input has its value set using a variable, the coerced value -should be `null` if the provided value is `null`-like in the provided -representation, or if the provided value is omitted. Otherwise, the coerced -value is the result of running the wrapped type's input coercion on the -provided value. +When a Non Null input has its value set using a variable, a query +error must be raised if the provided value is `null`-like in the +provided representation, or if the provided value is omitted. +Otherwise, the coerced value is the result of running the wrapped +type's input coercion on the provided value. ## Directives diff --git a/spec/Section 6 -- Execution.md b/spec/Section 6 -- Execution.md index 935fff9e3..3548dfc1b 100644 --- a/spec/Section 6 -- Execution.md +++ b/spec/Section 6 -- Execution.md @@ -14,6 +14,14 @@ error. If the operation is found, then the result of evaluating the request should be the result of evaluating the operation according to the “Evaluating operations” section. +## Coercing Variables + +If the operation has defined any variables, then the values for +those variables need to be coerced using the input coercion rules +of variable's declared type. If a query error is encountered during +input coercion of variable values, then the operation fails without +execution. + ## Evaluating operations The type system, as described in the “Type System” part of the spec, must