     if isParameterName fieldName
       resolvedParams[fieldName] = parentParameters[fieldName]
 
-    selectResolvedFieldParameters fieldDeclaration[fieldName], parentParameters, resolvedParams
+    for paramName, paramValue of fieldDeclaration[fieldName]
+      if beginsWithUpperCase paramValue
+        resolvedParams[paramName] = paramValue # This parameter has a static type
+      else
+        resolvedParams[paramName] = parentParameters[paramValue] # This parameter has its type passed through
 
     return [null, resolvedParams]
 

    return [null, result]
  else
    return [null, {}]

selectResolvedFieldParameters = (fieldParameters, parentParameters, resolvedParameters) ->
  for paramName, paramValue of fieldParameters
    if beginsWithUpperCase paramValue
      resolvedParameters[paramName] = fieldParameters[paramName]
    else
      resolvedParameters[paramName] = parentParameters[paramValue]

resolveAllPossibleParameters = (fieldsObj, parameterArguments) ->
  return {} if fieldsObj is undefined

isResolvedTypeName = (x) -> isString(x) and beginsWithUpperCase(x)
isParameterName = (x) -> isString(x) and !beginsWithUpperCase(x)

selectFieldTypeAsParameter = (fieldType, parentParameters) ->
  if parentParameters[fieldType]?
    result = {}
