github.com/vetcher/gqlgen@v0.6.0/codegen/testserver/generated.go (about)

     1  // Code generated by github.com/99designs/gqlgen, DO NOT EDIT.
     2  
     3  package testserver
     4  
     5  import (
     6  	bytes "bytes"
     7  	context "context"
     8  	fmt "fmt"
     9  	strconv "strconv"
    10  	sync "sync"
    11  
    12  	introspection1 "github.com/99designs/gqlgen/codegen/testserver/introspection"
    13  	invalid_packagename "github.com/99designs/gqlgen/codegen/testserver/invalid-packagename"
    14  	graphql "github.com/99designs/gqlgen/graphql"
    15  	introspection "github.com/99designs/gqlgen/graphql/introspection"
    16  	gqlparser "github.com/vektah/gqlparser"
    17  	ast "github.com/vektah/gqlparser/ast"
    18  )
    19  
    20  // NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.
    21  func NewExecutableSchema(cfg Config) graphql.ExecutableSchema {
    22  	return &executableSchema{
    23  		resolvers:  cfg.Resolvers,
    24  		directives: cfg.Directives,
    25  		complexity: cfg.Complexity,
    26  	}
    27  }
    28  
    29  type Config struct {
    30  	Resolvers  ResolverRoot
    31  	Directives DirectiveRoot
    32  	Complexity ComplexityRoot
    33  }
    34  
    35  type ResolverRoot interface {
    36  	ForcedResolver() ForcedResolverResolver
    37  	Query() QueryResolver
    38  	Subscription() SubscriptionResolver
    39  	User() UserResolver
    40  }
    41  
    42  type DirectiveRoot struct {
    43  }
    44  
    45  type ComplexityRoot struct {
    46  	Circle struct {
    47  		Radius func(childComplexity int) int
    48  		Area   func(childComplexity int) int
    49  	}
    50  
    51  	EmbeddedPointer struct {
    52  		Id    func(childComplexity int) int
    53  		Title func(childComplexity int) int
    54  	}
    55  
    56  	Error struct {
    57  		Id                      func(childComplexity int) int
    58  		ErrorOnNonRequiredField func(childComplexity int) int
    59  		ErrorOnRequiredField    func(childComplexity int) int
    60  		NilOnRequiredField      func(childComplexity int) int
    61  	}
    62  
    63  	ForcedResolver struct {
    64  		Field func(childComplexity int) int
    65  	}
    66  
    67  	InnerObject struct {
    68  		Id func(childComplexity int) int
    69  	}
    70  
    71  	InvalidIdentifier struct {
    72  		Id func(childComplexity int) int
    73  	}
    74  
    75  	It struct {
    76  		Id func(childComplexity int) int
    77  	}
    78  
    79  	OuterObject struct {
    80  		Inner func(childComplexity int) int
    81  	}
    82  
    83  	Query struct {
    84  		InvalidIdentifier func(childComplexity int) int
    85  		Collision         func(childComplexity int) int
    86  		MapInput          func(childComplexity int, input *map[string]interface{}) int
    87  		Recursive         func(childComplexity int, input *RecursiveInputSlice) int
    88  		NestedInputs      func(childComplexity int, input [][]*OuterInput) int
    89  		NestedOutputs     func(childComplexity int) int
    90  		Keywords          func(childComplexity int, input *Keywords) int
    91  		Shapes            func(childComplexity int) int
    92  		ErrorBubble       func(childComplexity int) int
    93  		Valid             func(childComplexity int) int
    94  		User              func(childComplexity int, id int) int
    95  		NullableArg       func(childComplexity int, arg *int) int
    96  		KeywordArgs       func(childComplexity int, breakArg string, defaultArg string, funcArg string, interfaceArg string, selectArg string, caseArg string, deferArg string, goArg string, mapArg string, structArg string, chanArg string, elseArg string, gotoArg string, packageArg string, switchArg string, constArg string, fallthroughArg string, ifArg string, rangeArg string, typeArg string, continueArg string, forArg string, importArg string, returnArg string, varArg string) int
    97  	}
    98  
    99  	Rectangle struct {
   100  		Length func(childComplexity int) int
   101  		Width  func(childComplexity int) int
   102  		Area   func(childComplexity int) int
   103  	}
   104  
   105  	Subscription struct {
   106  		Updated     func(childComplexity int) int
   107  		InitPayload func(childComplexity int) int
   108  	}
   109  
   110  	User struct {
   111  		Id      func(childComplexity int) int
   112  		Friends func(childComplexity int) int
   113  	}
   114  }
   115  
   116  type ForcedResolverResolver interface {
   117  	Field(ctx context.Context, obj *ForcedResolver) (*Circle, error)
   118  }
   119  type QueryResolver interface {
   120  	InvalidIdentifier(ctx context.Context) (*invalid_packagename.InvalidIdentifier, error)
   121  	Collision(ctx context.Context) (*introspection1.It, error)
   122  	MapInput(ctx context.Context, input *map[string]interface{}) (*bool, error)
   123  	Recursive(ctx context.Context, input *RecursiveInputSlice) (*bool, error)
   124  	NestedInputs(ctx context.Context, input [][]*OuterInput) (*bool, error)
   125  	NestedOutputs(ctx context.Context) ([][]*OuterObject, error)
   126  	Keywords(ctx context.Context, input *Keywords) (bool, error)
   127  	Shapes(ctx context.Context) ([]*Shape, error)
   128  	ErrorBubble(ctx context.Context) (*Error, error)
   129  	Valid(ctx context.Context) (string, error)
   130  	User(ctx context.Context, id int) (User, error)
   131  	NullableArg(ctx context.Context, arg *int) (*string, error)
   132  	KeywordArgs(ctx context.Context, breakArg string, defaultArg string, funcArg string, interfaceArg string, selectArg string, caseArg string, deferArg string, goArg string, mapArg string, structArg string, chanArg string, elseArg string, gotoArg string, packageArg string, switchArg string, constArg string, fallthroughArg string, ifArg string, rangeArg string, typeArg string, continueArg string, forArg string, importArg string, returnArg string, varArg string) (bool, error)
   133  }
   134  type SubscriptionResolver interface {
   135  	Updated(ctx context.Context) (<-chan string, error)
   136  	InitPayload(ctx context.Context) (<-chan string, error)
   137  }
   138  type UserResolver interface {
   139  	Friends(ctx context.Context, obj *User) ([]User, error)
   140  }
   141  
   142  func field_Query_mapInput_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   143  	args := map[string]interface{}{}
   144  	var arg0 *map[string]interface{}
   145  	if tmp, ok := rawArgs["input"]; ok {
   146  		var err error
   147  		var ptr1 map[string]interface{}
   148  		if tmp != nil {
   149  			ptr1 = tmp.(map[string]interface{})
   150  			arg0 = &ptr1
   151  		}
   152  
   153  		if err != nil {
   154  			return nil, err
   155  		}
   156  	}
   157  	args["input"] = arg0
   158  	return args, nil
   159  
   160  }
   161  
   162  func field_Query_recursive_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   163  	args := map[string]interface{}{}
   164  	var arg0 *RecursiveInputSlice
   165  	if tmp, ok := rawArgs["input"]; ok {
   166  		var err error
   167  		var ptr1 RecursiveInputSlice
   168  		if tmp != nil {
   169  			ptr1, err = UnmarshalRecursiveInputSlice(tmp)
   170  			arg0 = &ptr1
   171  		}
   172  
   173  		if err != nil {
   174  			return nil, err
   175  		}
   176  	}
   177  	args["input"] = arg0
   178  	return args, nil
   179  
   180  }
   181  
   182  func field_Query_nestedInputs_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   183  	args := map[string]interface{}{}
   184  	var arg0 [][]*OuterInput
   185  	if tmp, ok := rawArgs["input"]; ok {
   186  		var err error
   187  		var rawIf1 []interface{}
   188  		if tmp != nil {
   189  			if tmp1, ok := tmp.([]interface{}); ok {
   190  				rawIf1 = tmp1
   191  			} else {
   192  				rawIf1 = []interface{}{tmp}
   193  			}
   194  		}
   195  		arg0 = make([][]*OuterInput, len(rawIf1))
   196  		for idx1 := range rawIf1 {
   197  			var rawIf2 []interface{}
   198  			if rawIf1[idx1] != nil {
   199  				if tmp1, ok := rawIf1[idx1].([]interface{}); ok {
   200  					rawIf2 = tmp1
   201  				} else {
   202  					rawIf2 = []interface{}{rawIf1[idx1]}
   203  				}
   204  			}
   205  			arg0[idx1] = make([]*OuterInput, len(rawIf2))
   206  			for idx2 := range rawIf2 {
   207  				var ptr3 OuterInput
   208  				if rawIf2[idx2] != nil {
   209  					ptr3, err = UnmarshalOuterInput(rawIf2[idx2])
   210  					arg0[idx1][idx2] = &ptr3
   211  				}
   212  			}
   213  		}
   214  		if err != nil {
   215  			return nil, err
   216  		}
   217  	}
   218  	args["input"] = arg0
   219  	return args, nil
   220  
   221  }
   222  
   223  func field_Query_keywords_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   224  	args := map[string]interface{}{}
   225  	var arg0 *Keywords
   226  	if tmp, ok := rawArgs["input"]; ok {
   227  		var err error
   228  		var ptr1 Keywords
   229  		if tmp != nil {
   230  			ptr1, err = UnmarshalKeywords(tmp)
   231  			arg0 = &ptr1
   232  		}
   233  
   234  		if err != nil {
   235  			return nil, err
   236  		}
   237  	}
   238  	args["input"] = arg0
   239  	return args, nil
   240  
   241  }
   242  
   243  func field_Query_user_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   244  	args := map[string]interface{}{}
   245  	var arg0 int
   246  	if tmp, ok := rawArgs["id"]; ok {
   247  		var err error
   248  		arg0, err = graphql.UnmarshalInt(tmp)
   249  		if err != nil {
   250  			return nil, err
   251  		}
   252  	}
   253  	args["id"] = arg0
   254  	return args, nil
   255  
   256  }
   257  
   258  func field_Query_nullableArg_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   259  	args := map[string]interface{}{}
   260  	var arg0 *int
   261  	if tmp, ok := rawArgs["arg"]; ok {
   262  		var err error
   263  		var ptr1 int
   264  		if tmp != nil {
   265  			ptr1, err = graphql.UnmarshalInt(tmp)
   266  			arg0 = &ptr1
   267  		}
   268  
   269  		if err != nil {
   270  			return nil, err
   271  		}
   272  	}
   273  	args["arg"] = arg0
   274  	return args, nil
   275  
   276  }
   277  
   278  func field_Query_keywordArgs_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   279  	args := map[string]interface{}{}
   280  	var arg0 string
   281  	if tmp, ok := rawArgs["break"]; ok {
   282  		var err error
   283  		arg0, err = graphql.UnmarshalString(tmp)
   284  		if err != nil {
   285  			return nil, err
   286  		}
   287  	}
   288  	args["break"] = arg0
   289  	var arg1 string
   290  	if tmp, ok := rawArgs["default"]; ok {
   291  		var err error
   292  		arg1, err = graphql.UnmarshalString(tmp)
   293  		if err != nil {
   294  			return nil, err
   295  		}
   296  	}
   297  	args["default"] = arg1
   298  	var arg2 string
   299  	if tmp, ok := rawArgs["func"]; ok {
   300  		var err error
   301  		arg2, err = graphql.UnmarshalString(tmp)
   302  		if err != nil {
   303  			return nil, err
   304  		}
   305  	}
   306  	args["func"] = arg2
   307  	var arg3 string
   308  	if tmp, ok := rawArgs["interface"]; ok {
   309  		var err error
   310  		arg3, err = graphql.UnmarshalString(tmp)
   311  		if err != nil {
   312  			return nil, err
   313  		}
   314  	}
   315  	args["interface"] = arg3
   316  	var arg4 string
   317  	if tmp, ok := rawArgs["select"]; ok {
   318  		var err error
   319  		arg4, err = graphql.UnmarshalString(tmp)
   320  		if err != nil {
   321  			return nil, err
   322  		}
   323  	}
   324  	args["select"] = arg4
   325  	var arg5 string
   326  	if tmp, ok := rawArgs["case"]; ok {
   327  		var err error
   328  		arg5, err = graphql.UnmarshalString(tmp)
   329  		if err != nil {
   330  			return nil, err
   331  		}
   332  	}
   333  	args["case"] = arg5
   334  	var arg6 string
   335  	if tmp, ok := rawArgs["defer"]; ok {
   336  		var err error
   337  		arg6, err = graphql.UnmarshalString(tmp)
   338  		if err != nil {
   339  			return nil, err
   340  		}
   341  	}
   342  	args["defer"] = arg6
   343  	var arg7 string
   344  	if tmp, ok := rawArgs["go"]; ok {
   345  		var err error
   346  		arg7, err = graphql.UnmarshalString(tmp)
   347  		if err != nil {
   348  			return nil, err
   349  		}
   350  	}
   351  	args["go"] = arg7
   352  	var arg8 string
   353  	if tmp, ok := rawArgs["map"]; ok {
   354  		var err error
   355  		arg8, err = graphql.UnmarshalString(tmp)
   356  		if err != nil {
   357  			return nil, err
   358  		}
   359  	}
   360  	args["map"] = arg8
   361  	var arg9 string
   362  	if tmp, ok := rawArgs["struct"]; ok {
   363  		var err error
   364  		arg9, err = graphql.UnmarshalString(tmp)
   365  		if err != nil {
   366  			return nil, err
   367  		}
   368  	}
   369  	args["struct"] = arg9
   370  	var arg10 string
   371  	if tmp, ok := rawArgs["chan"]; ok {
   372  		var err error
   373  		arg10, err = graphql.UnmarshalString(tmp)
   374  		if err != nil {
   375  			return nil, err
   376  		}
   377  	}
   378  	args["chan"] = arg10
   379  	var arg11 string
   380  	if tmp, ok := rawArgs["else"]; ok {
   381  		var err error
   382  		arg11, err = graphql.UnmarshalString(tmp)
   383  		if err != nil {
   384  			return nil, err
   385  		}
   386  	}
   387  	args["else"] = arg11
   388  	var arg12 string
   389  	if tmp, ok := rawArgs["goto"]; ok {
   390  		var err error
   391  		arg12, err = graphql.UnmarshalString(tmp)
   392  		if err != nil {
   393  			return nil, err
   394  		}
   395  	}
   396  	args["goto"] = arg12
   397  	var arg13 string
   398  	if tmp, ok := rawArgs["package"]; ok {
   399  		var err error
   400  		arg13, err = graphql.UnmarshalString(tmp)
   401  		if err != nil {
   402  			return nil, err
   403  		}
   404  	}
   405  	args["package"] = arg13
   406  	var arg14 string
   407  	if tmp, ok := rawArgs["switch"]; ok {
   408  		var err error
   409  		arg14, err = graphql.UnmarshalString(tmp)
   410  		if err != nil {
   411  			return nil, err
   412  		}
   413  	}
   414  	args["switch"] = arg14
   415  	var arg15 string
   416  	if tmp, ok := rawArgs["const"]; ok {
   417  		var err error
   418  		arg15, err = graphql.UnmarshalString(tmp)
   419  		if err != nil {
   420  			return nil, err
   421  		}
   422  	}
   423  	args["const"] = arg15
   424  	var arg16 string
   425  	if tmp, ok := rawArgs["fallthrough"]; ok {
   426  		var err error
   427  		arg16, err = graphql.UnmarshalString(tmp)
   428  		if err != nil {
   429  			return nil, err
   430  		}
   431  	}
   432  	args["fallthrough"] = arg16
   433  	var arg17 string
   434  	if tmp, ok := rawArgs["if"]; ok {
   435  		var err error
   436  		arg17, err = graphql.UnmarshalString(tmp)
   437  		if err != nil {
   438  			return nil, err
   439  		}
   440  	}
   441  	args["if"] = arg17
   442  	var arg18 string
   443  	if tmp, ok := rawArgs["range"]; ok {
   444  		var err error
   445  		arg18, err = graphql.UnmarshalString(tmp)
   446  		if err != nil {
   447  			return nil, err
   448  		}
   449  	}
   450  	args["range"] = arg18
   451  	var arg19 string
   452  	if tmp, ok := rawArgs["type"]; ok {
   453  		var err error
   454  		arg19, err = graphql.UnmarshalString(tmp)
   455  		if err != nil {
   456  			return nil, err
   457  		}
   458  	}
   459  	args["type"] = arg19
   460  	var arg20 string
   461  	if tmp, ok := rawArgs["continue"]; ok {
   462  		var err error
   463  		arg20, err = graphql.UnmarshalString(tmp)
   464  		if err != nil {
   465  			return nil, err
   466  		}
   467  	}
   468  	args["continue"] = arg20
   469  	var arg21 string
   470  	if tmp, ok := rawArgs["for"]; ok {
   471  		var err error
   472  		arg21, err = graphql.UnmarshalString(tmp)
   473  		if err != nil {
   474  			return nil, err
   475  		}
   476  	}
   477  	args["for"] = arg21
   478  	var arg22 string
   479  	if tmp, ok := rawArgs["import"]; ok {
   480  		var err error
   481  		arg22, err = graphql.UnmarshalString(tmp)
   482  		if err != nil {
   483  			return nil, err
   484  		}
   485  	}
   486  	args["import"] = arg22
   487  	var arg23 string
   488  	if tmp, ok := rawArgs["return"]; ok {
   489  		var err error
   490  		arg23, err = graphql.UnmarshalString(tmp)
   491  		if err != nil {
   492  			return nil, err
   493  		}
   494  	}
   495  	args["return"] = arg23
   496  	var arg24 string
   497  	if tmp, ok := rawArgs["var"]; ok {
   498  		var err error
   499  		arg24, err = graphql.UnmarshalString(tmp)
   500  		if err != nil {
   501  			return nil, err
   502  		}
   503  	}
   504  	args["var"] = arg24
   505  	return args, nil
   506  
   507  }
   508  
   509  func field_Query___type_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   510  	args := map[string]interface{}{}
   511  	var arg0 string
   512  	if tmp, ok := rawArgs["name"]; ok {
   513  		var err error
   514  		arg0, err = graphql.UnmarshalString(tmp)
   515  		if err != nil {
   516  			return nil, err
   517  		}
   518  	}
   519  	args["name"] = arg0
   520  	return args, nil
   521  
   522  }
   523  
   524  func field___Type_fields_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   525  	args := map[string]interface{}{}
   526  	var arg0 bool
   527  	if tmp, ok := rawArgs["includeDeprecated"]; ok {
   528  		var err error
   529  		arg0, err = graphql.UnmarshalBoolean(tmp)
   530  		if err != nil {
   531  			return nil, err
   532  		}
   533  	}
   534  	args["includeDeprecated"] = arg0
   535  	return args, nil
   536  
   537  }
   538  
   539  func field___Type_enumValues_args(rawArgs map[string]interface{}) (map[string]interface{}, error) {
   540  	args := map[string]interface{}{}
   541  	var arg0 bool
   542  	if tmp, ok := rawArgs["includeDeprecated"]; ok {
   543  		var err error
   544  		arg0, err = graphql.UnmarshalBoolean(tmp)
   545  		if err != nil {
   546  			return nil, err
   547  		}
   548  	}
   549  	args["includeDeprecated"] = arg0
   550  	return args, nil
   551  
   552  }
   553  
   554  type executableSchema struct {
   555  	resolvers  ResolverRoot
   556  	directives DirectiveRoot
   557  	complexity ComplexityRoot
   558  }
   559  
   560  func (e *executableSchema) Schema() *ast.Schema {
   561  	return parsedSchema
   562  }
   563  
   564  func (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]interface{}) (int, bool) {
   565  	switch typeName + "." + field {
   566  
   567  	case "Circle.radius":
   568  		if e.complexity.Circle.Radius == nil {
   569  			break
   570  		}
   571  
   572  		return e.complexity.Circle.Radius(childComplexity), true
   573  
   574  	case "Circle.area":
   575  		if e.complexity.Circle.Area == nil {
   576  			break
   577  		}
   578  
   579  		return e.complexity.Circle.Area(childComplexity), true
   580  
   581  	case "EmbeddedPointer.ID":
   582  		if e.complexity.EmbeddedPointer.Id == nil {
   583  			break
   584  		}
   585  
   586  		return e.complexity.EmbeddedPointer.Id(childComplexity), true
   587  
   588  	case "EmbeddedPointer.Title":
   589  		if e.complexity.EmbeddedPointer.Title == nil {
   590  			break
   591  		}
   592  
   593  		return e.complexity.EmbeddedPointer.Title(childComplexity), true
   594  
   595  	case "Error.id":
   596  		if e.complexity.Error.Id == nil {
   597  			break
   598  		}
   599  
   600  		return e.complexity.Error.Id(childComplexity), true
   601  
   602  	case "Error.errorOnNonRequiredField":
   603  		if e.complexity.Error.ErrorOnNonRequiredField == nil {
   604  			break
   605  		}
   606  
   607  		return e.complexity.Error.ErrorOnNonRequiredField(childComplexity), true
   608  
   609  	case "Error.errorOnRequiredField":
   610  		if e.complexity.Error.ErrorOnRequiredField == nil {
   611  			break
   612  		}
   613  
   614  		return e.complexity.Error.ErrorOnRequiredField(childComplexity), true
   615  
   616  	case "Error.nilOnRequiredField":
   617  		if e.complexity.Error.NilOnRequiredField == nil {
   618  			break
   619  		}
   620  
   621  		return e.complexity.Error.NilOnRequiredField(childComplexity), true
   622  
   623  	case "ForcedResolver.field":
   624  		if e.complexity.ForcedResolver.Field == nil {
   625  			break
   626  		}
   627  
   628  		return e.complexity.ForcedResolver.Field(childComplexity), true
   629  
   630  	case "InnerObject.id":
   631  		if e.complexity.InnerObject.Id == nil {
   632  			break
   633  		}
   634  
   635  		return e.complexity.InnerObject.Id(childComplexity), true
   636  
   637  	case "InvalidIdentifier.id":
   638  		if e.complexity.InvalidIdentifier.Id == nil {
   639  			break
   640  		}
   641  
   642  		return e.complexity.InvalidIdentifier.Id(childComplexity), true
   643  
   644  	case "It.id":
   645  		if e.complexity.It.Id == nil {
   646  			break
   647  		}
   648  
   649  		return e.complexity.It.Id(childComplexity), true
   650  
   651  	case "OuterObject.inner":
   652  		if e.complexity.OuterObject.Inner == nil {
   653  			break
   654  		}
   655  
   656  		return e.complexity.OuterObject.Inner(childComplexity), true
   657  
   658  	case "Query.invalidIdentifier":
   659  		if e.complexity.Query.InvalidIdentifier == nil {
   660  			break
   661  		}
   662  
   663  		return e.complexity.Query.InvalidIdentifier(childComplexity), true
   664  
   665  	case "Query.collision":
   666  		if e.complexity.Query.Collision == nil {
   667  			break
   668  		}
   669  
   670  		return e.complexity.Query.Collision(childComplexity), true
   671  
   672  	case "Query.mapInput":
   673  		if e.complexity.Query.MapInput == nil {
   674  			break
   675  		}
   676  
   677  		args, err := field_Query_mapInput_args(rawArgs)
   678  		if err != nil {
   679  			return 0, false
   680  		}
   681  
   682  		return e.complexity.Query.MapInput(childComplexity, args["input"].(*map[string]interface{})), true
   683  
   684  	case "Query.recursive":
   685  		if e.complexity.Query.Recursive == nil {
   686  			break
   687  		}
   688  
   689  		args, err := field_Query_recursive_args(rawArgs)
   690  		if err != nil {
   691  			return 0, false
   692  		}
   693  
   694  		return e.complexity.Query.Recursive(childComplexity, args["input"].(*RecursiveInputSlice)), true
   695  
   696  	case "Query.nestedInputs":
   697  		if e.complexity.Query.NestedInputs == nil {
   698  			break
   699  		}
   700  
   701  		args, err := field_Query_nestedInputs_args(rawArgs)
   702  		if err != nil {
   703  			return 0, false
   704  		}
   705  
   706  		return e.complexity.Query.NestedInputs(childComplexity, args["input"].([][]*OuterInput)), true
   707  
   708  	case "Query.nestedOutputs":
   709  		if e.complexity.Query.NestedOutputs == nil {
   710  			break
   711  		}
   712  
   713  		return e.complexity.Query.NestedOutputs(childComplexity), true
   714  
   715  	case "Query.keywords":
   716  		if e.complexity.Query.Keywords == nil {
   717  			break
   718  		}
   719  
   720  		args, err := field_Query_keywords_args(rawArgs)
   721  		if err != nil {
   722  			return 0, false
   723  		}
   724  
   725  		return e.complexity.Query.Keywords(childComplexity, args["input"].(*Keywords)), true
   726  
   727  	case "Query.shapes":
   728  		if e.complexity.Query.Shapes == nil {
   729  			break
   730  		}
   731  
   732  		return e.complexity.Query.Shapes(childComplexity), true
   733  
   734  	case "Query.errorBubble":
   735  		if e.complexity.Query.ErrorBubble == nil {
   736  			break
   737  		}
   738  
   739  		return e.complexity.Query.ErrorBubble(childComplexity), true
   740  
   741  	case "Query.valid":
   742  		if e.complexity.Query.Valid == nil {
   743  			break
   744  		}
   745  
   746  		return e.complexity.Query.Valid(childComplexity), true
   747  
   748  	case "Query.user":
   749  		if e.complexity.Query.User == nil {
   750  			break
   751  		}
   752  
   753  		args, err := field_Query_user_args(rawArgs)
   754  		if err != nil {
   755  			return 0, false
   756  		}
   757  
   758  		return e.complexity.Query.User(childComplexity, args["id"].(int)), true
   759  
   760  	case "Query.nullableArg":
   761  		if e.complexity.Query.NullableArg == nil {
   762  			break
   763  		}
   764  
   765  		args, err := field_Query_nullableArg_args(rawArgs)
   766  		if err != nil {
   767  			return 0, false
   768  		}
   769  
   770  		return e.complexity.Query.NullableArg(childComplexity, args["arg"].(*int)), true
   771  
   772  	case "Query.keywordArgs":
   773  		if e.complexity.Query.KeywordArgs == nil {
   774  			break
   775  		}
   776  
   777  		args, err := field_Query_keywordArgs_args(rawArgs)
   778  		if err != nil {
   779  			return 0, false
   780  		}
   781  
   782  		return e.complexity.Query.KeywordArgs(childComplexity, args["break"].(string), args["default"].(string), args["func"].(string), args["interface"].(string), args["select"].(string), args["case"].(string), args["defer"].(string), args["go"].(string), args["map"].(string), args["struct"].(string), args["chan"].(string), args["else"].(string), args["goto"].(string), args["package"].(string), args["switch"].(string), args["const"].(string), args["fallthrough"].(string), args["if"].(string), args["range"].(string), args["type"].(string), args["continue"].(string), args["for"].(string), args["import"].(string), args["return"].(string), args["var"].(string)), true
   783  
   784  	case "Rectangle.length":
   785  		if e.complexity.Rectangle.Length == nil {
   786  			break
   787  		}
   788  
   789  		return e.complexity.Rectangle.Length(childComplexity), true
   790  
   791  	case "Rectangle.width":
   792  		if e.complexity.Rectangle.Width == nil {
   793  			break
   794  		}
   795  
   796  		return e.complexity.Rectangle.Width(childComplexity), true
   797  
   798  	case "Rectangle.area":
   799  		if e.complexity.Rectangle.Area == nil {
   800  			break
   801  		}
   802  
   803  		return e.complexity.Rectangle.Area(childComplexity), true
   804  
   805  	case "Subscription.updated":
   806  		if e.complexity.Subscription.Updated == nil {
   807  			break
   808  		}
   809  
   810  		return e.complexity.Subscription.Updated(childComplexity), true
   811  
   812  	case "Subscription.initPayload":
   813  		if e.complexity.Subscription.InitPayload == nil {
   814  			break
   815  		}
   816  
   817  		return e.complexity.Subscription.InitPayload(childComplexity), true
   818  
   819  	case "User.id":
   820  		if e.complexity.User.Id == nil {
   821  			break
   822  		}
   823  
   824  		return e.complexity.User.Id(childComplexity), true
   825  
   826  	case "User.friends":
   827  		if e.complexity.User.Friends == nil {
   828  			break
   829  		}
   830  
   831  		return e.complexity.User.Friends(childComplexity), true
   832  
   833  	}
   834  	return 0, false
   835  }
   836  
   837  func (e *executableSchema) Query(ctx context.Context, op *ast.OperationDefinition) *graphql.Response {
   838  	ec := executionContext{graphql.GetRequestContext(ctx), e}
   839  
   840  	buf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte {
   841  		data := ec._Query(ctx, op.SelectionSet)
   842  		var buf bytes.Buffer
   843  		data.MarshalGQL(&buf)
   844  		return buf.Bytes()
   845  	})
   846  
   847  	return &graphql.Response{
   848  		Data:       buf,
   849  		Errors:     ec.Errors,
   850  		Extensions: ec.Extensions}
   851  }
   852  
   853  func (e *executableSchema) Mutation(ctx context.Context, op *ast.OperationDefinition) *graphql.Response {
   854  	return graphql.ErrorResponse(ctx, "mutations are not supported")
   855  }
   856  
   857  func (e *executableSchema) Subscription(ctx context.Context, op *ast.OperationDefinition) func() *graphql.Response {
   858  	ec := executionContext{graphql.GetRequestContext(ctx), e}
   859  
   860  	next := ec._Subscription(ctx, op.SelectionSet)
   861  	if ec.Errors != nil {
   862  		return graphql.OneShot(&graphql.Response{Data: []byte("null"), Errors: ec.Errors})
   863  	}
   864  
   865  	var buf bytes.Buffer
   866  	return func() *graphql.Response {
   867  		buf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte {
   868  			buf.Reset()
   869  			data := next()
   870  
   871  			if data == nil {
   872  				return nil
   873  			}
   874  			data.MarshalGQL(&buf)
   875  			return buf.Bytes()
   876  		})
   877  
   878  		if buf == nil {
   879  			return nil
   880  		}
   881  
   882  		return &graphql.Response{
   883  			Data:       buf,
   884  			Errors:     ec.Errors,
   885  			Extensions: ec.Extensions,
   886  		}
   887  	}
   888  }
   889  
   890  type executionContext struct {
   891  	*graphql.RequestContext
   892  	*executableSchema
   893  }
   894  
   895  var circleImplementors = []string{"Circle", "Shape"}
   896  
   897  // nolint: gocyclo, errcheck, gas, goconst
   898  func (ec *executionContext) _Circle(ctx context.Context, sel ast.SelectionSet, obj *Circle) graphql.Marshaler {
   899  	fields := graphql.CollectFields(ctx, sel, circleImplementors)
   900  
   901  	out := graphql.NewOrderedMap(len(fields))
   902  	invalid := false
   903  	for i, field := range fields {
   904  		out.Keys[i] = field.Alias
   905  
   906  		switch field.Name {
   907  		case "__typename":
   908  			out.Values[i] = graphql.MarshalString("Circle")
   909  		case "radius":
   910  			out.Values[i] = ec._Circle_radius(ctx, field, obj)
   911  		case "area":
   912  			out.Values[i] = ec._Circle_area(ctx, field, obj)
   913  		default:
   914  			panic("unknown field " + strconv.Quote(field.Name))
   915  		}
   916  	}
   917  
   918  	if invalid {
   919  		return graphql.Null
   920  	}
   921  	return out
   922  }
   923  
   924  // nolint: vetshadow
   925  func (ec *executionContext) _Circle_radius(ctx context.Context, field graphql.CollectedField, obj *Circle) graphql.Marshaler {
   926  	rctx := &graphql.ResolverContext{
   927  		Object: "Circle",
   928  		Args:   nil,
   929  		Field:  field,
   930  	}
   931  	ctx = graphql.WithResolverContext(ctx, rctx)
   932  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   933  		ctx = rctx // use context from middleware stack in children
   934  		return obj.Radius, nil
   935  	})
   936  	if resTmp == nil {
   937  		return graphql.Null
   938  	}
   939  	res := resTmp.(float64)
   940  	rctx.Result = res
   941  	return graphql.MarshalFloat(res)
   942  }
   943  
   944  // nolint: vetshadow
   945  func (ec *executionContext) _Circle_area(ctx context.Context, field graphql.CollectedField, obj *Circle) graphql.Marshaler {
   946  	rctx := &graphql.ResolverContext{
   947  		Object: "Circle",
   948  		Args:   nil,
   949  		Field:  field,
   950  	}
   951  	ctx = graphql.WithResolverContext(ctx, rctx)
   952  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
   953  		ctx = rctx // use context from middleware stack in children
   954  		return obj.Area(), nil
   955  	})
   956  	if resTmp == nil {
   957  		return graphql.Null
   958  	}
   959  	res := resTmp.(float64)
   960  	rctx.Result = res
   961  	return graphql.MarshalFloat(res)
   962  }
   963  
   964  var embeddedPointerImplementors = []string{"EmbeddedPointer"}
   965  
   966  // nolint: gocyclo, errcheck, gas, goconst
   967  func (ec *executionContext) _EmbeddedPointer(ctx context.Context, sel ast.SelectionSet, obj *EmbeddedPointerModel) graphql.Marshaler {
   968  	fields := graphql.CollectFields(ctx, sel, embeddedPointerImplementors)
   969  
   970  	out := graphql.NewOrderedMap(len(fields))
   971  	invalid := false
   972  	for i, field := range fields {
   973  		out.Keys[i] = field.Alias
   974  
   975  		switch field.Name {
   976  		case "__typename":
   977  			out.Values[i] = graphql.MarshalString("EmbeddedPointer")
   978  		case "ID":
   979  			out.Values[i] = ec._EmbeddedPointer_ID(ctx, field, obj)
   980  		case "Title":
   981  			out.Values[i] = ec._EmbeddedPointer_Title(ctx, field, obj)
   982  		default:
   983  			panic("unknown field " + strconv.Quote(field.Name))
   984  		}
   985  	}
   986  
   987  	if invalid {
   988  		return graphql.Null
   989  	}
   990  	return out
   991  }
   992  
   993  // nolint: vetshadow
   994  func (ec *executionContext) _EmbeddedPointer_ID(ctx context.Context, field graphql.CollectedField, obj *EmbeddedPointerModel) graphql.Marshaler {
   995  	rctx := &graphql.ResolverContext{
   996  		Object: "EmbeddedPointer",
   997  		Args:   nil,
   998  		Field:  field,
   999  	}
  1000  	ctx = graphql.WithResolverContext(ctx, rctx)
  1001  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1002  		ctx = rctx // use context from middleware stack in children
  1003  		return obj.ID, nil
  1004  	})
  1005  	if resTmp == nil {
  1006  		return graphql.Null
  1007  	}
  1008  	res := resTmp.(string)
  1009  	rctx.Result = res
  1010  	return graphql.MarshalString(res)
  1011  }
  1012  
  1013  // nolint: vetshadow
  1014  func (ec *executionContext) _EmbeddedPointer_Title(ctx context.Context, field graphql.CollectedField, obj *EmbeddedPointerModel) graphql.Marshaler {
  1015  	rctx := &graphql.ResolverContext{
  1016  		Object: "EmbeddedPointer",
  1017  		Args:   nil,
  1018  		Field:  field,
  1019  	}
  1020  	ctx = graphql.WithResolverContext(ctx, rctx)
  1021  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1022  		ctx = rctx // use context from middleware stack in children
  1023  		return obj.Title, nil
  1024  	})
  1025  	if resTmp == nil {
  1026  		return graphql.Null
  1027  	}
  1028  	res := resTmp.(string)
  1029  	rctx.Result = res
  1030  	return graphql.MarshalString(res)
  1031  }
  1032  
  1033  var errorImplementors = []string{"Error"}
  1034  
  1035  // nolint: gocyclo, errcheck, gas, goconst
  1036  func (ec *executionContext) _Error(ctx context.Context, sel ast.SelectionSet, obj *Error) graphql.Marshaler {
  1037  	fields := graphql.CollectFields(ctx, sel, errorImplementors)
  1038  
  1039  	out := graphql.NewOrderedMap(len(fields))
  1040  	invalid := false
  1041  	for i, field := range fields {
  1042  		out.Keys[i] = field.Alias
  1043  
  1044  		switch field.Name {
  1045  		case "__typename":
  1046  			out.Values[i] = graphql.MarshalString("Error")
  1047  		case "id":
  1048  			out.Values[i] = ec._Error_id(ctx, field, obj)
  1049  			if out.Values[i] == graphql.Null {
  1050  				invalid = true
  1051  			}
  1052  		case "errorOnNonRequiredField":
  1053  			out.Values[i] = ec._Error_errorOnNonRequiredField(ctx, field, obj)
  1054  		case "errorOnRequiredField":
  1055  			out.Values[i] = ec._Error_errorOnRequiredField(ctx, field, obj)
  1056  			if out.Values[i] == graphql.Null {
  1057  				invalid = true
  1058  			}
  1059  		case "nilOnRequiredField":
  1060  			out.Values[i] = ec._Error_nilOnRequiredField(ctx, field, obj)
  1061  			if out.Values[i] == graphql.Null {
  1062  				invalid = true
  1063  			}
  1064  		default:
  1065  			panic("unknown field " + strconv.Quote(field.Name))
  1066  		}
  1067  	}
  1068  
  1069  	if invalid {
  1070  		return graphql.Null
  1071  	}
  1072  	return out
  1073  }
  1074  
  1075  // nolint: vetshadow
  1076  func (ec *executionContext) _Error_id(ctx context.Context, field graphql.CollectedField, obj *Error) graphql.Marshaler {
  1077  	rctx := &graphql.ResolverContext{
  1078  		Object: "Error",
  1079  		Args:   nil,
  1080  		Field:  field,
  1081  	}
  1082  	ctx = graphql.WithResolverContext(ctx, rctx)
  1083  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1084  		ctx = rctx // use context from middleware stack in children
  1085  		return obj.ID, nil
  1086  	})
  1087  	if resTmp == nil {
  1088  		if !ec.HasError(rctx) {
  1089  			ec.Errorf(ctx, "must not be null")
  1090  		}
  1091  		return graphql.Null
  1092  	}
  1093  	res := resTmp.(string)
  1094  	rctx.Result = res
  1095  	return graphql.MarshalID(res)
  1096  }
  1097  
  1098  // nolint: vetshadow
  1099  func (ec *executionContext) _Error_errorOnNonRequiredField(ctx context.Context, field graphql.CollectedField, obj *Error) graphql.Marshaler {
  1100  	rctx := &graphql.ResolverContext{
  1101  		Object: "Error",
  1102  		Args:   nil,
  1103  		Field:  field,
  1104  	}
  1105  	ctx = graphql.WithResolverContext(ctx, rctx)
  1106  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1107  		ctx = rctx // use context from middleware stack in children
  1108  		return obj.ErrorOnNonRequiredField()
  1109  	})
  1110  	if resTmp == nil {
  1111  		return graphql.Null
  1112  	}
  1113  	res := resTmp.(string)
  1114  	rctx.Result = res
  1115  	return graphql.MarshalString(res)
  1116  }
  1117  
  1118  // nolint: vetshadow
  1119  func (ec *executionContext) _Error_errorOnRequiredField(ctx context.Context, field graphql.CollectedField, obj *Error) graphql.Marshaler {
  1120  	rctx := &graphql.ResolverContext{
  1121  		Object: "Error",
  1122  		Args:   nil,
  1123  		Field:  field,
  1124  	}
  1125  	ctx = graphql.WithResolverContext(ctx, rctx)
  1126  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1127  		ctx = rctx // use context from middleware stack in children
  1128  		return obj.ErrorOnRequiredField()
  1129  	})
  1130  	if resTmp == nil {
  1131  		if !ec.HasError(rctx) {
  1132  			ec.Errorf(ctx, "must not be null")
  1133  		}
  1134  		return graphql.Null
  1135  	}
  1136  	res := resTmp.(string)
  1137  	rctx.Result = res
  1138  	return graphql.MarshalString(res)
  1139  }
  1140  
  1141  // nolint: vetshadow
  1142  func (ec *executionContext) _Error_nilOnRequiredField(ctx context.Context, field graphql.CollectedField, obj *Error) graphql.Marshaler {
  1143  	rctx := &graphql.ResolverContext{
  1144  		Object: "Error",
  1145  		Args:   nil,
  1146  		Field:  field,
  1147  	}
  1148  	ctx = graphql.WithResolverContext(ctx, rctx)
  1149  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1150  		ctx = rctx // use context from middleware stack in children
  1151  		return obj.NilOnRequiredField(), nil
  1152  	})
  1153  	if resTmp == nil {
  1154  		if !ec.HasError(rctx) {
  1155  			ec.Errorf(ctx, "must not be null")
  1156  		}
  1157  		return graphql.Null
  1158  	}
  1159  	res := resTmp.(*string)
  1160  	rctx.Result = res
  1161  
  1162  	if res == nil {
  1163  		if !ec.HasError(rctx) {
  1164  			ec.Errorf(ctx, "must not be null")
  1165  		}
  1166  		return graphql.Null
  1167  	}
  1168  	return graphql.MarshalString(*res)
  1169  }
  1170  
  1171  var forcedResolverImplementors = []string{"ForcedResolver"}
  1172  
  1173  // nolint: gocyclo, errcheck, gas, goconst
  1174  func (ec *executionContext) _ForcedResolver(ctx context.Context, sel ast.SelectionSet, obj *ForcedResolver) graphql.Marshaler {
  1175  	fields := graphql.CollectFields(ctx, sel, forcedResolverImplementors)
  1176  
  1177  	var wg sync.WaitGroup
  1178  	out := graphql.NewOrderedMap(len(fields))
  1179  	invalid := false
  1180  	for i, field := range fields {
  1181  		out.Keys[i] = field.Alias
  1182  
  1183  		switch field.Name {
  1184  		case "__typename":
  1185  			out.Values[i] = graphql.MarshalString("ForcedResolver")
  1186  		case "field":
  1187  			wg.Add(1)
  1188  			go func(i int, field graphql.CollectedField) {
  1189  				out.Values[i] = ec._ForcedResolver_field(ctx, field, obj)
  1190  				wg.Done()
  1191  			}(i, field)
  1192  		default:
  1193  			panic("unknown field " + strconv.Quote(field.Name))
  1194  		}
  1195  	}
  1196  	wg.Wait()
  1197  	if invalid {
  1198  		return graphql.Null
  1199  	}
  1200  	return out
  1201  }
  1202  
  1203  // nolint: vetshadow
  1204  func (ec *executionContext) _ForcedResolver_field(ctx context.Context, field graphql.CollectedField, obj *ForcedResolver) graphql.Marshaler {
  1205  	rctx := &graphql.ResolverContext{
  1206  		Object: "ForcedResolver",
  1207  		Args:   nil,
  1208  		Field:  field,
  1209  	}
  1210  	ctx = graphql.WithResolverContext(ctx, rctx)
  1211  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1212  		ctx = rctx // use context from middleware stack in children
  1213  		return ec.resolvers.ForcedResolver().Field(rctx, obj)
  1214  	})
  1215  	if resTmp == nil {
  1216  		return graphql.Null
  1217  	}
  1218  	res := resTmp.(*Circle)
  1219  	rctx.Result = res
  1220  
  1221  	if res == nil {
  1222  		return graphql.Null
  1223  	}
  1224  
  1225  	return ec._Circle(ctx, field.Selections, res)
  1226  }
  1227  
  1228  var innerObjectImplementors = []string{"InnerObject"}
  1229  
  1230  // nolint: gocyclo, errcheck, gas, goconst
  1231  func (ec *executionContext) _InnerObject(ctx context.Context, sel ast.SelectionSet, obj *InnerObject) graphql.Marshaler {
  1232  	fields := graphql.CollectFields(ctx, sel, innerObjectImplementors)
  1233  
  1234  	out := graphql.NewOrderedMap(len(fields))
  1235  	invalid := false
  1236  	for i, field := range fields {
  1237  		out.Keys[i] = field.Alias
  1238  
  1239  		switch field.Name {
  1240  		case "__typename":
  1241  			out.Values[i] = graphql.MarshalString("InnerObject")
  1242  		case "id":
  1243  			out.Values[i] = ec._InnerObject_id(ctx, field, obj)
  1244  			if out.Values[i] == graphql.Null {
  1245  				invalid = true
  1246  			}
  1247  		default:
  1248  			panic("unknown field " + strconv.Quote(field.Name))
  1249  		}
  1250  	}
  1251  
  1252  	if invalid {
  1253  		return graphql.Null
  1254  	}
  1255  	return out
  1256  }
  1257  
  1258  // nolint: vetshadow
  1259  func (ec *executionContext) _InnerObject_id(ctx context.Context, field graphql.CollectedField, obj *InnerObject) graphql.Marshaler {
  1260  	rctx := &graphql.ResolverContext{
  1261  		Object: "InnerObject",
  1262  		Args:   nil,
  1263  		Field:  field,
  1264  	}
  1265  	ctx = graphql.WithResolverContext(ctx, rctx)
  1266  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1267  		ctx = rctx // use context from middleware stack in children
  1268  		return obj.ID, nil
  1269  	})
  1270  	if resTmp == nil {
  1271  		if !ec.HasError(rctx) {
  1272  			ec.Errorf(ctx, "must not be null")
  1273  		}
  1274  		return graphql.Null
  1275  	}
  1276  	res := resTmp.(int)
  1277  	rctx.Result = res
  1278  	return graphql.MarshalInt(res)
  1279  }
  1280  
  1281  var invalidIdentifierImplementors = []string{"InvalidIdentifier"}
  1282  
  1283  // nolint: gocyclo, errcheck, gas, goconst
  1284  func (ec *executionContext) _InvalidIdentifier(ctx context.Context, sel ast.SelectionSet, obj *invalid_packagename.InvalidIdentifier) graphql.Marshaler {
  1285  	fields := graphql.CollectFields(ctx, sel, invalidIdentifierImplementors)
  1286  
  1287  	out := graphql.NewOrderedMap(len(fields))
  1288  	invalid := false
  1289  	for i, field := range fields {
  1290  		out.Keys[i] = field.Alias
  1291  
  1292  		switch field.Name {
  1293  		case "__typename":
  1294  			out.Values[i] = graphql.MarshalString("InvalidIdentifier")
  1295  		case "id":
  1296  			out.Values[i] = ec._InvalidIdentifier_id(ctx, field, obj)
  1297  			if out.Values[i] == graphql.Null {
  1298  				invalid = true
  1299  			}
  1300  		default:
  1301  			panic("unknown field " + strconv.Quote(field.Name))
  1302  		}
  1303  	}
  1304  
  1305  	if invalid {
  1306  		return graphql.Null
  1307  	}
  1308  	return out
  1309  }
  1310  
  1311  // nolint: vetshadow
  1312  func (ec *executionContext) _InvalidIdentifier_id(ctx context.Context, field graphql.CollectedField, obj *invalid_packagename.InvalidIdentifier) graphql.Marshaler {
  1313  	rctx := &graphql.ResolverContext{
  1314  		Object: "InvalidIdentifier",
  1315  		Args:   nil,
  1316  		Field:  field,
  1317  	}
  1318  	ctx = graphql.WithResolverContext(ctx, rctx)
  1319  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1320  		ctx = rctx // use context from middleware stack in children
  1321  		return obj.ID, nil
  1322  	})
  1323  	if resTmp == nil {
  1324  		if !ec.HasError(rctx) {
  1325  			ec.Errorf(ctx, "must not be null")
  1326  		}
  1327  		return graphql.Null
  1328  	}
  1329  	res := resTmp.(int)
  1330  	rctx.Result = res
  1331  	return graphql.MarshalInt(res)
  1332  }
  1333  
  1334  var itImplementors = []string{"It"}
  1335  
  1336  // nolint: gocyclo, errcheck, gas, goconst
  1337  func (ec *executionContext) _It(ctx context.Context, sel ast.SelectionSet, obj *introspection1.It) graphql.Marshaler {
  1338  	fields := graphql.CollectFields(ctx, sel, itImplementors)
  1339  
  1340  	out := graphql.NewOrderedMap(len(fields))
  1341  	invalid := false
  1342  	for i, field := range fields {
  1343  		out.Keys[i] = field.Alias
  1344  
  1345  		switch field.Name {
  1346  		case "__typename":
  1347  			out.Values[i] = graphql.MarshalString("It")
  1348  		case "id":
  1349  			out.Values[i] = ec._It_id(ctx, field, obj)
  1350  			if out.Values[i] == graphql.Null {
  1351  				invalid = true
  1352  			}
  1353  		default:
  1354  			panic("unknown field " + strconv.Quote(field.Name))
  1355  		}
  1356  	}
  1357  
  1358  	if invalid {
  1359  		return graphql.Null
  1360  	}
  1361  	return out
  1362  }
  1363  
  1364  // nolint: vetshadow
  1365  func (ec *executionContext) _It_id(ctx context.Context, field graphql.CollectedField, obj *introspection1.It) graphql.Marshaler {
  1366  	rctx := &graphql.ResolverContext{
  1367  		Object: "It",
  1368  		Args:   nil,
  1369  		Field:  field,
  1370  	}
  1371  	ctx = graphql.WithResolverContext(ctx, rctx)
  1372  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1373  		ctx = rctx // use context from middleware stack in children
  1374  		return obj.ID, nil
  1375  	})
  1376  	if resTmp == nil {
  1377  		if !ec.HasError(rctx) {
  1378  			ec.Errorf(ctx, "must not be null")
  1379  		}
  1380  		return graphql.Null
  1381  	}
  1382  	res := resTmp.(string)
  1383  	rctx.Result = res
  1384  	return graphql.MarshalID(res)
  1385  }
  1386  
  1387  var outerObjectImplementors = []string{"OuterObject"}
  1388  
  1389  // nolint: gocyclo, errcheck, gas, goconst
  1390  func (ec *executionContext) _OuterObject(ctx context.Context, sel ast.SelectionSet, obj *OuterObject) graphql.Marshaler {
  1391  	fields := graphql.CollectFields(ctx, sel, outerObjectImplementors)
  1392  
  1393  	out := graphql.NewOrderedMap(len(fields))
  1394  	invalid := false
  1395  	for i, field := range fields {
  1396  		out.Keys[i] = field.Alias
  1397  
  1398  		switch field.Name {
  1399  		case "__typename":
  1400  			out.Values[i] = graphql.MarshalString("OuterObject")
  1401  		case "inner":
  1402  			out.Values[i] = ec._OuterObject_inner(ctx, field, obj)
  1403  			if out.Values[i] == graphql.Null {
  1404  				invalid = true
  1405  			}
  1406  		default:
  1407  			panic("unknown field " + strconv.Quote(field.Name))
  1408  		}
  1409  	}
  1410  
  1411  	if invalid {
  1412  		return graphql.Null
  1413  	}
  1414  	return out
  1415  }
  1416  
  1417  // nolint: vetshadow
  1418  func (ec *executionContext) _OuterObject_inner(ctx context.Context, field graphql.CollectedField, obj *OuterObject) graphql.Marshaler {
  1419  	rctx := &graphql.ResolverContext{
  1420  		Object: "OuterObject",
  1421  		Args:   nil,
  1422  		Field:  field,
  1423  	}
  1424  	ctx = graphql.WithResolverContext(ctx, rctx)
  1425  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  1426  		ctx = rctx // use context from middleware stack in children
  1427  		return obj.Inner, nil
  1428  	})
  1429  	if resTmp == nil {
  1430  		if !ec.HasError(rctx) {
  1431  			ec.Errorf(ctx, "must not be null")
  1432  		}
  1433  		return graphql.Null
  1434  	}
  1435  	res := resTmp.(InnerObject)
  1436  	rctx.Result = res
  1437  
  1438  	return ec._InnerObject(ctx, field.Selections, &res)
  1439  }
  1440  
  1441  var queryImplementors = []string{"Query"}
  1442  
  1443  // nolint: gocyclo, errcheck, gas, goconst
  1444  func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler {
  1445  	fields := graphql.CollectFields(ctx, sel, queryImplementors)
  1446  
  1447  	ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{
  1448  		Object: "Query",
  1449  	})
  1450  
  1451  	var wg sync.WaitGroup
  1452  	out := graphql.NewOrderedMap(len(fields))
  1453  	invalid := false
  1454  	for i, field := range fields {
  1455  		out.Keys[i] = field.Alias
  1456  
  1457  		switch field.Name {
  1458  		case "__typename":
  1459  			out.Values[i] = graphql.MarshalString("Query")
  1460  		case "invalidIdentifier":
  1461  			wg.Add(1)
  1462  			go func(i int, field graphql.CollectedField) {
  1463  				out.Values[i] = ec._Query_invalidIdentifier(ctx, field)
  1464  				wg.Done()
  1465  			}(i, field)
  1466  		case "collision":
  1467  			wg.Add(1)
  1468  			go func(i int, field graphql.CollectedField) {
  1469  				out.Values[i] = ec._Query_collision(ctx, field)
  1470  				wg.Done()
  1471  			}(i, field)
  1472  		case "mapInput":
  1473  			wg.Add(1)
  1474  			go func(i int, field graphql.CollectedField) {
  1475  				out.Values[i] = ec._Query_mapInput(ctx, field)
  1476  				wg.Done()
  1477  			}(i, field)
  1478  		case "recursive":
  1479  			wg.Add(1)
  1480  			go func(i int, field graphql.CollectedField) {
  1481  				out.Values[i] = ec._Query_recursive(ctx, field)
  1482  				wg.Done()
  1483  			}(i, field)
  1484  		case "nestedInputs":
  1485  			wg.Add(1)
  1486  			go func(i int, field graphql.CollectedField) {
  1487  				out.Values[i] = ec._Query_nestedInputs(ctx, field)
  1488  				wg.Done()
  1489  			}(i, field)
  1490  		case "nestedOutputs":
  1491  			wg.Add(1)
  1492  			go func(i int, field graphql.CollectedField) {
  1493  				out.Values[i] = ec._Query_nestedOutputs(ctx, field)
  1494  				wg.Done()
  1495  			}(i, field)
  1496  		case "keywords":
  1497  			wg.Add(1)
  1498  			go func(i int, field graphql.CollectedField) {
  1499  				out.Values[i] = ec._Query_keywords(ctx, field)
  1500  				if out.Values[i] == graphql.Null {
  1501  					invalid = true
  1502  				}
  1503  				wg.Done()
  1504  			}(i, field)
  1505  		case "shapes":
  1506  			wg.Add(1)
  1507  			go func(i int, field graphql.CollectedField) {
  1508  				out.Values[i] = ec._Query_shapes(ctx, field)
  1509  				wg.Done()
  1510  			}(i, field)
  1511  		case "errorBubble":
  1512  			wg.Add(1)
  1513  			go func(i int, field graphql.CollectedField) {
  1514  				out.Values[i] = ec._Query_errorBubble(ctx, field)
  1515  				wg.Done()
  1516  			}(i, field)
  1517  		case "valid":
  1518  			wg.Add(1)
  1519  			go func(i int, field graphql.CollectedField) {
  1520  				out.Values[i] = ec._Query_valid(ctx, field)
  1521  				if out.Values[i] == graphql.Null {
  1522  					invalid = true
  1523  				}
  1524  				wg.Done()
  1525  			}(i, field)
  1526  		case "user":
  1527  			wg.Add(1)
  1528  			go func(i int, field graphql.CollectedField) {
  1529  				out.Values[i] = ec._Query_user(ctx, field)
  1530  				if out.Values[i] == graphql.Null {
  1531  					invalid = true
  1532  				}
  1533  				wg.Done()
  1534  			}(i, field)
  1535  		case "nullableArg":
  1536  			wg.Add(1)
  1537  			go func(i int, field graphql.CollectedField) {
  1538  				out.Values[i] = ec._Query_nullableArg(ctx, field)
  1539  				wg.Done()
  1540  			}(i, field)
  1541  		case "keywordArgs":
  1542  			wg.Add(1)
  1543  			go func(i int, field graphql.CollectedField) {
  1544  				out.Values[i] = ec._Query_keywordArgs(ctx, field)
  1545  				if out.Values[i] == graphql.Null {
  1546  					invalid = true
  1547  				}
  1548  				wg.Done()
  1549  			}(i, field)
  1550  		case "__type":
  1551  			out.Values[i] = ec._Query___type(ctx, field)
  1552  		case "__schema":
  1553  			out.Values[i] = ec._Query___schema(ctx, field)
  1554  		default:
  1555  			panic("unknown field " + strconv.Quote(field.Name))
  1556  		}
  1557  	}
  1558  	wg.Wait()
  1559  	if invalid {
  1560  		return graphql.Null
  1561  	}
  1562  	return out
  1563  }
  1564  
  1565  // nolint: vetshadow
  1566  func (ec *executionContext) _Query_invalidIdentifier(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1567  	rctx := &graphql.ResolverContext{
  1568  		Object: "Query",
  1569  		Args:   nil,
  1570  		Field:  field,
  1571  	}
  1572  	ctx = graphql.WithResolverContext(ctx, rctx)
  1573  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1574  		ctx = rctx // use context from middleware stack in children
  1575  		return ec.resolvers.Query().InvalidIdentifier(rctx)
  1576  	})
  1577  	if resTmp == nil {
  1578  		return graphql.Null
  1579  	}
  1580  	res := resTmp.(*invalid_packagename.InvalidIdentifier)
  1581  	rctx.Result = res
  1582  
  1583  	if res == nil {
  1584  		return graphql.Null
  1585  	}
  1586  
  1587  	return ec._InvalidIdentifier(ctx, field.Selections, res)
  1588  }
  1589  
  1590  // nolint: vetshadow
  1591  func (ec *executionContext) _Query_collision(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1592  	rctx := &graphql.ResolverContext{
  1593  		Object: "Query",
  1594  		Args:   nil,
  1595  		Field:  field,
  1596  	}
  1597  	ctx = graphql.WithResolverContext(ctx, rctx)
  1598  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1599  		ctx = rctx // use context from middleware stack in children
  1600  		return ec.resolvers.Query().Collision(rctx)
  1601  	})
  1602  	if resTmp == nil {
  1603  		return graphql.Null
  1604  	}
  1605  	res := resTmp.(*introspection1.It)
  1606  	rctx.Result = res
  1607  
  1608  	if res == nil {
  1609  		return graphql.Null
  1610  	}
  1611  
  1612  	return ec._It(ctx, field.Selections, res)
  1613  }
  1614  
  1615  // nolint: vetshadow
  1616  func (ec *executionContext) _Query_mapInput(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1617  	rawArgs := field.ArgumentMap(ec.Variables)
  1618  	args, err := field_Query_mapInput_args(rawArgs)
  1619  	if err != nil {
  1620  		ec.Error(ctx, err)
  1621  		return graphql.Null
  1622  	}
  1623  	rctx := &graphql.ResolverContext{
  1624  		Object: "Query",
  1625  		Args:   args,
  1626  		Field:  field,
  1627  	}
  1628  	ctx = graphql.WithResolverContext(ctx, rctx)
  1629  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1630  		ctx = rctx // use context from middleware stack in children
  1631  		return ec.resolvers.Query().MapInput(rctx, args["input"].(*map[string]interface{}))
  1632  	})
  1633  	if resTmp == nil {
  1634  		return graphql.Null
  1635  	}
  1636  	res := resTmp.(*bool)
  1637  	rctx.Result = res
  1638  
  1639  	if res == nil {
  1640  		return graphql.Null
  1641  	}
  1642  	return graphql.MarshalBoolean(*res)
  1643  }
  1644  
  1645  // nolint: vetshadow
  1646  func (ec *executionContext) _Query_recursive(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1647  	rawArgs := field.ArgumentMap(ec.Variables)
  1648  	args, err := field_Query_recursive_args(rawArgs)
  1649  	if err != nil {
  1650  		ec.Error(ctx, err)
  1651  		return graphql.Null
  1652  	}
  1653  	rctx := &graphql.ResolverContext{
  1654  		Object: "Query",
  1655  		Args:   args,
  1656  		Field:  field,
  1657  	}
  1658  	ctx = graphql.WithResolverContext(ctx, rctx)
  1659  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1660  		ctx = rctx // use context from middleware stack in children
  1661  		return ec.resolvers.Query().Recursive(rctx, args["input"].(*RecursiveInputSlice))
  1662  	})
  1663  	if resTmp == nil {
  1664  		return graphql.Null
  1665  	}
  1666  	res := resTmp.(*bool)
  1667  	rctx.Result = res
  1668  
  1669  	if res == nil {
  1670  		return graphql.Null
  1671  	}
  1672  	return graphql.MarshalBoolean(*res)
  1673  }
  1674  
  1675  // nolint: vetshadow
  1676  func (ec *executionContext) _Query_nestedInputs(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1677  	rawArgs := field.ArgumentMap(ec.Variables)
  1678  	args, err := field_Query_nestedInputs_args(rawArgs)
  1679  	if err != nil {
  1680  		ec.Error(ctx, err)
  1681  		return graphql.Null
  1682  	}
  1683  	rctx := &graphql.ResolverContext{
  1684  		Object: "Query",
  1685  		Args:   args,
  1686  		Field:  field,
  1687  	}
  1688  	ctx = graphql.WithResolverContext(ctx, rctx)
  1689  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1690  		ctx = rctx // use context from middleware stack in children
  1691  		return ec.resolvers.Query().NestedInputs(rctx, args["input"].([][]*OuterInput))
  1692  	})
  1693  	if resTmp == nil {
  1694  		return graphql.Null
  1695  	}
  1696  	res := resTmp.(*bool)
  1697  	rctx.Result = res
  1698  
  1699  	if res == nil {
  1700  		return graphql.Null
  1701  	}
  1702  	return graphql.MarshalBoolean(*res)
  1703  }
  1704  
  1705  // nolint: vetshadow
  1706  func (ec *executionContext) _Query_nestedOutputs(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1707  	rctx := &graphql.ResolverContext{
  1708  		Object: "Query",
  1709  		Args:   nil,
  1710  		Field:  field,
  1711  	}
  1712  	ctx = graphql.WithResolverContext(ctx, rctx)
  1713  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1714  		ctx = rctx // use context from middleware stack in children
  1715  		return ec.resolvers.Query().NestedOutputs(rctx)
  1716  	})
  1717  	if resTmp == nil {
  1718  		return graphql.Null
  1719  	}
  1720  	res := resTmp.([][]*OuterObject)
  1721  	rctx.Result = res
  1722  
  1723  	arr1 := make(graphql.Array, len(res))
  1724  	var wg sync.WaitGroup
  1725  
  1726  	isLen1 := len(res) == 1
  1727  	if !isLen1 {
  1728  		wg.Add(len(res))
  1729  	}
  1730  
  1731  	for idx1 := range res {
  1732  		idx1 := idx1
  1733  		rctx := &graphql.ResolverContext{
  1734  			Index:  &idx1,
  1735  			Result: res[idx1],
  1736  		}
  1737  		ctx := graphql.WithResolverContext(ctx, rctx)
  1738  		f := func(idx1 int) {
  1739  			if !isLen1 {
  1740  				defer wg.Done()
  1741  			}
  1742  			arr1[idx1] = func() graphql.Marshaler {
  1743  
  1744  				arr2 := make(graphql.Array, len(res[idx1]))
  1745  
  1746  				isLen1 := len(res[idx1]) == 1
  1747  				if !isLen1 {
  1748  					wg.Add(len(res[idx1]))
  1749  				}
  1750  
  1751  				for idx2 := range res[idx1] {
  1752  					idx2 := idx2
  1753  					rctx := &graphql.ResolverContext{
  1754  						Index:  &idx2,
  1755  						Result: res[idx1][idx2],
  1756  					}
  1757  					ctx := graphql.WithResolverContext(ctx, rctx)
  1758  					f := func(idx2 int) {
  1759  						if !isLen1 {
  1760  							defer wg.Done()
  1761  						}
  1762  						arr2[idx2] = func() graphql.Marshaler {
  1763  
  1764  							if res[idx1][idx2] == nil {
  1765  								return graphql.Null
  1766  							}
  1767  
  1768  							return ec._OuterObject(ctx, field.Selections, res[idx1][idx2])
  1769  						}()
  1770  					}
  1771  					if isLen1 {
  1772  						f(idx2)
  1773  					} else {
  1774  						go f(idx2)
  1775  					}
  1776  
  1777  				}
  1778  
  1779  				return arr2
  1780  			}()
  1781  		}
  1782  		if isLen1 {
  1783  			f(idx1)
  1784  		} else {
  1785  			go f(idx1)
  1786  		}
  1787  
  1788  	}
  1789  	wg.Wait()
  1790  	return arr1
  1791  }
  1792  
  1793  // nolint: vetshadow
  1794  func (ec *executionContext) _Query_keywords(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1795  	rawArgs := field.ArgumentMap(ec.Variables)
  1796  	args, err := field_Query_keywords_args(rawArgs)
  1797  	if err != nil {
  1798  		ec.Error(ctx, err)
  1799  		return graphql.Null
  1800  	}
  1801  	rctx := &graphql.ResolverContext{
  1802  		Object: "Query",
  1803  		Args:   args,
  1804  		Field:  field,
  1805  	}
  1806  	ctx = graphql.WithResolverContext(ctx, rctx)
  1807  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1808  		ctx = rctx // use context from middleware stack in children
  1809  		return ec.resolvers.Query().Keywords(rctx, args["input"].(*Keywords))
  1810  	})
  1811  	if resTmp == nil {
  1812  		if !ec.HasError(rctx) {
  1813  			ec.Errorf(ctx, "must not be null")
  1814  		}
  1815  		return graphql.Null
  1816  	}
  1817  	res := resTmp.(bool)
  1818  	rctx.Result = res
  1819  	return graphql.MarshalBoolean(res)
  1820  }
  1821  
  1822  // nolint: vetshadow
  1823  func (ec *executionContext) _Query_shapes(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1824  	rctx := &graphql.ResolverContext{
  1825  		Object: "Query",
  1826  		Args:   nil,
  1827  		Field:  field,
  1828  	}
  1829  	ctx = graphql.WithResolverContext(ctx, rctx)
  1830  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1831  		ctx = rctx // use context from middleware stack in children
  1832  		return ec.resolvers.Query().Shapes(rctx)
  1833  	})
  1834  	if resTmp == nil {
  1835  		return graphql.Null
  1836  	}
  1837  	res := resTmp.([]*Shape)
  1838  	rctx.Result = res
  1839  
  1840  	arr1 := make(graphql.Array, len(res))
  1841  	var wg sync.WaitGroup
  1842  
  1843  	isLen1 := len(res) == 1
  1844  	if !isLen1 {
  1845  		wg.Add(len(res))
  1846  	}
  1847  
  1848  	for idx1 := range res {
  1849  		idx1 := idx1
  1850  		rctx := &graphql.ResolverContext{
  1851  			Index:  &idx1,
  1852  			Result: res[idx1],
  1853  		}
  1854  		ctx := graphql.WithResolverContext(ctx, rctx)
  1855  		f := func(idx1 int) {
  1856  			if !isLen1 {
  1857  				defer wg.Done()
  1858  			}
  1859  			arr1[idx1] = func() graphql.Marshaler {
  1860  
  1861  				if res[idx1] == nil {
  1862  					return graphql.Null
  1863  				}
  1864  
  1865  				return ec._Shape(ctx, field.Selections, res[idx1])
  1866  			}()
  1867  		}
  1868  		if isLen1 {
  1869  			f(idx1)
  1870  		} else {
  1871  			go f(idx1)
  1872  		}
  1873  
  1874  	}
  1875  	wg.Wait()
  1876  	return arr1
  1877  }
  1878  
  1879  // nolint: vetshadow
  1880  func (ec *executionContext) _Query_errorBubble(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1881  	rctx := &graphql.ResolverContext{
  1882  		Object: "Query",
  1883  		Args:   nil,
  1884  		Field:  field,
  1885  	}
  1886  	ctx = graphql.WithResolverContext(ctx, rctx)
  1887  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1888  		ctx = rctx // use context from middleware stack in children
  1889  		return ec.resolvers.Query().ErrorBubble(rctx)
  1890  	})
  1891  	if resTmp == nil {
  1892  		return graphql.Null
  1893  	}
  1894  	res := resTmp.(*Error)
  1895  	rctx.Result = res
  1896  
  1897  	if res == nil {
  1898  		return graphql.Null
  1899  	}
  1900  
  1901  	return ec._Error(ctx, field.Selections, res)
  1902  }
  1903  
  1904  // nolint: vetshadow
  1905  func (ec *executionContext) _Query_valid(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1906  	rctx := &graphql.ResolverContext{
  1907  		Object: "Query",
  1908  		Args:   nil,
  1909  		Field:  field,
  1910  	}
  1911  	ctx = graphql.WithResolverContext(ctx, rctx)
  1912  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1913  		ctx = rctx // use context from middleware stack in children
  1914  		return ec.resolvers.Query().Valid(rctx)
  1915  	})
  1916  	if resTmp == nil {
  1917  		if !ec.HasError(rctx) {
  1918  			ec.Errorf(ctx, "must not be null")
  1919  		}
  1920  		return graphql.Null
  1921  	}
  1922  	res := resTmp.(string)
  1923  	rctx.Result = res
  1924  	return graphql.MarshalString(res)
  1925  }
  1926  
  1927  // nolint: vetshadow
  1928  func (ec *executionContext) _Query_user(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1929  	rawArgs := field.ArgumentMap(ec.Variables)
  1930  	args, err := field_Query_user_args(rawArgs)
  1931  	if err != nil {
  1932  		ec.Error(ctx, err)
  1933  		return graphql.Null
  1934  	}
  1935  	rctx := &graphql.ResolverContext{
  1936  		Object: "Query",
  1937  		Args:   args,
  1938  		Field:  field,
  1939  	}
  1940  	ctx = graphql.WithResolverContext(ctx, rctx)
  1941  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1942  		ctx = rctx // use context from middleware stack in children
  1943  		return ec.resolvers.Query().User(rctx, args["id"].(int))
  1944  	})
  1945  	if resTmp == nil {
  1946  		if !ec.HasError(rctx) {
  1947  			ec.Errorf(ctx, "must not be null")
  1948  		}
  1949  		return graphql.Null
  1950  	}
  1951  	res := resTmp.(User)
  1952  	rctx.Result = res
  1953  
  1954  	return ec._User(ctx, field.Selections, &res)
  1955  }
  1956  
  1957  // nolint: vetshadow
  1958  func (ec *executionContext) _Query_nullableArg(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1959  	rawArgs := field.ArgumentMap(ec.Variables)
  1960  	args, err := field_Query_nullableArg_args(rawArgs)
  1961  	if err != nil {
  1962  		ec.Error(ctx, err)
  1963  		return graphql.Null
  1964  	}
  1965  	rctx := &graphql.ResolverContext{
  1966  		Object: "Query",
  1967  		Args:   args,
  1968  		Field:  field,
  1969  	}
  1970  	ctx = graphql.WithResolverContext(ctx, rctx)
  1971  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  1972  		ctx = rctx // use context from middleware stack in children
  1973  		return ec.resolvers.Query().NullableArg(rctx, args["arg"].(*int))
  1974  	})
  1975  	if resTmp == nil {
  1976  		return graphql.Null
  1977  	}
  1978  	res := resTmp.(*string)
  1979  	rctx.Result = res
  1980  
  1981  	if res == nil {
  1982  		return graphql.Null
  1983  	}
  1984  	return graphql.MarshalString(*res)
  1985  }
  1986  
  1987  // nolint: vetshadow
  1988  func (ec *executionContext) _Query_keywordArgs(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  1989  	rawArgs := field.ArgumentMap(ec.Variables)
  1990  	args, err := field_Query_keywordArgs_args(rawArgs)
  1991  	if err != nil {
  1992  		ec.Error(ctx, err)
  1993  		return graphql.Null
  1994  	}
  1995  	rctx := &graphql.ResolverContext{
  1996  		Object: "Query",
  1997  		Args:   args,
  1998  		Field:  field,
  1999  	}
  2000  	ctx = graphql.WithResolverContext(ctx, rctx)
  2001  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  2002  		ctx = rctx // use context from middleware stack in children
  2003  		return ec.resolvers.Query().KeywordArgs(rctx, args["break"].(string), args["default"].(string), args["func"].(string), args["interface"].(string), args["select"].(string), args["case"].(string), args["defer"].(string), args["go"].(string), args["map"].(string), args["struct"].(string), args["chan"].(string), args["else"].(string), args["goto"].(string), args["package"].(string), args["switch"].(string), args["const"].(string), args["fallthrough"].(string), args["if"].(string), args["range"].(string), args["type"].(string), args["continue"].(string), args["for"].(string), args["import"].(string), args["return"].(string), args["var"].(string))
  2004  	})
  2005  	if resTmp == nil {
  2006  		if !ec.HasError(rctx) {
  2007  			ec.Errorf(ctx, "must not be null")
  2008  		}
  2009  		return graphql.Null
  2010  	}
  2011  	res := resTmp.(bool)
  2012  	rctx.Result = res
  2013  	return graphql.MarshalBoolean(res)
  2014  }
  2015  
  2016  // nolint: vetshadow
  2017  func (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  2018  	rawArgs := field.ArgumentMap(ec.Variables)
  2019  	args, err := field_Query___type_args(rawArgs)
  2020  	if err != nil {
  2021  		ec.Error(ctx, err)
  2022  		return graphql.Null
  2023  	}
  2024  	rctx := &graphql.ResolverContext{
  2025  		Object: "Query",
  2026  		Args:   args,
  2027  		Field:  field,
  2028  	}
  2029  	ctx = graphql.WithResolverContext(ctx, rctx)
  2030  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  2031  		ctx = rctx // use context from middleware stack in children
  2032  		return ec.introspectType(args["name"].(string)), nil
  2033  	})
  2034  	if resTmp == nil {
  2035  		return graphql.Null
  2036  	}
  2037  	res := resTmp.(*introspection.Type)
  2038  	rctx.Result = res
  2039  
  2040  	if res == nil {
  2041  		return graphql.Null
  2042  	}
  2043  
  2044  	return ec.___Type(ctx, field.Selections, res)
  2045  }
  2046  
  2047  // nolint: vetshadow
  2048  func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) graphql.Marshaler {
  2049  	rctx := &graphql.ResolverContext{
  2050  		Object: "Query",
  2051  		Args:   nil,
  2052  		Field:  field,
  2053  	}
  2054  	ctx = graphql.WithResolverContext(ctx, rctx)
  2055  	resTmp := ec.FieldMiddleware(ctx, nil, func(rctx context.Context) (interface{}, error) {
  2056  		ctx = rctx // use context from middleware stack in children
  2057  		return ec.introspectSchema(), nil
  2058  	})
  2059  	if resTmp == nil {
  2060  		return graphql.Null
  2061  	}
  2062  	res := resTmp.(*introspection.Schema)
  2063  	rctx.Result = res
  2064  
  2065  	if res == nil {
  2066  		return graphql.Null
  2067  	}
  2068  
  2069  	return ec.___Schema(ctx, field.Selections, res)
  2070  }
  2071  
  2072  var rectangleImplementors = []string{"Rectangle", "Shape"}
  2073  
  2074  // nolint: gocyclo, errcheck, gas, goconst
  2075  func (ec *executionContext) _Rectangle(ctx context.Context, sel ast.SelectionSet, obj *Rectangle) graphql.Marshaler {
  2076  	fields := graphql.CollectFields(ctx, sel, rectangleImplementors)
  2077  
  2078  	out := graphql.NewOrderedMap(len(fields))
  2079  	invalid := false
  2080  	for i, field := range fields {
  2081  		out.Keys[i] = field.Alias
  2082  
  2083  		switch field.Name {
  2084  		case "__typename":
  2085  			out.Values[i] = graphql.MarshalString("Rectangle")
  2086  		case "length":
  2087  			out.Values[i] = ec._Rectangle_length(ctx, field, obj)
  2088  		case "width":
  2089  			out.Values[i] = ec._Rectangle_width(ctx, field, obj)
  2090  		case "area":
  2091  			out.Values[i] = ec._Rectangle_area(ctx, field, obj)
  2092  		default:
  2093  			panic("unknown field " + strconv.Quote(field.Name))
  2094  		}
  2095  	}
  2096  
  2097  	if invalid {
  2098  		return graphql.Null
  2099  	}
  2100  	return out
  2101  }
  2102  
  2103  // nolint: vetshadow
  2104  func (ec *executionContext) _Rectangle_length(ctx context.Context, field graphql.CollectedField, obj *Rectangle) graphql.Marshaler {
  2105  	rctx := &graphql.ResolverContext{
  2106  		Object: "Rectangle",
  2107  		Args:   nil,
  2108  		Field:  field,
  2109  	}
  2110  	ctx = graphql.WithResolverContext(ctx, rctx)
  2111  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2112  		ctx = rctx // use context from middleware stack in children
  2113  		return obj.Length, nil
  2114  	})
  2115  	if resTmp == nil {
  2116  		return graphql.Null
  2117  	}
  2118  	res := resTmp.(float64)
  2119  	rctx.Result = res
  2120  	return graphql.MarshalFloat(res)
  2121  }
  2122  
  2123  // nolint: vetshadow
  2124  func (ec *executionContext) _Rectangle_width(ctx context.Context, field graphql.CollectedField, obj *Rectangle) graphql.Marshaler {
  2125  	rctx := &graphql.ResolverContext{
  2126  		Object: "Rectangle",
  2127  		Args:   nil,
  2128  		Field:  field,
  2129  	}
  2130  	ctx = graphql.WithResolverContext(ctx, rctx)
  2131  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2132  		ctx = rctx // use context from middleware stack in children
  2133  		return obj.Width, nil
  2134  	})
  2135  	if resTmp == nil {
  2136  		return graphql.Null
  2137  	}
  2138  	res := resTmp.(float64)
  2139  	rctx.Result = res
  2140  	return graphql.MarshalFloat(res)
  2141  }
  2142  
  2143  // nolint: vetshadow
  2144  func (ec *executionContext) _Rectangle_area(ctx context.Context, field graphql.CollectedField, obj *Rectangle) graphql.Marshaler {
  2145  	rctx := &graphql.ResolverContext{
  2146  		Object: "Rectangle",
  2147  		Args:   nil,
  2148  		Field:  field,
  2149  	}
  2150  	ctx = graphql.WithResolverContext(ctx, rctx)
  2151  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2152  		ctx = rctx // use context from middleware stack in children
  2153  		return obj.Area(), nil
  2154  	})
  2155  	if resTmp == nil {
  2156  		return graphql.Null
  2157  	}
  2158  	res := resTmp.(float64)
  2159  	rctx.Result = res
  2160  	return graphql.MarshalFloat(res)
  2161  }
  2162  
  2163  var subscriptionImplementors = []string{"Subscription"}
  2164  
  2165  // nolint: gocyclo, errcheck, gas, goconst
  2166  func (ec *executionContext) _Subscription(ctx context.Context, sel ast.SelectionSet) func() graphql.Marshaler {
  2167  	fields := graphql.CollectFields(ctx, sel, subscriptionImplementors)
  2168  	ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{
  2169  		Object: "Subscription",
  2170  	})
  2171  	if len(fields) != 1 {
  2172  		ec.Errorf(ctx, "must subscribe to exactly one stream")
  2173  		return nil
  2174  	}
  2175  
  2176  	switch fields[0].Name {
  2177  	case "updated":
  2178  		return ec._Subscription_updated(ctx, fields[0])
  2179  	case "initPayload":
  2180  		return ec._Subscription_initPayload(ctx, fields[0])
  2181  	default:
  2182  		panic("unknown field " + strconv.Quote(fields[0].Name))
  2183  	}
  2184  }
  2185  
  2186  func (ec *executionContext) _Subscription_updated(ctx context.Context, field graphql.CollectedField) func() graphql.Marshaler {
  2187  	ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{
  2188  		Field: field,
  2189  	})
  2190  	rctx := ctx // FIXME: subscriptions are missing request middleware stack https://github.com/99designs/gqlgen/issues/259
  2191  	results, err := ec.resolvers.Subscription().Updated(rctx)
  2192  	if err != nil {
  2193  		ec.Error(ctx, err)
  2194  		return nil
  2195  	}
  2196  	return func() graphql.Marshaler {
  2197  		res, ok := <-results
  2198  		if !ok {
  2199  			return nil
  2200  		}
  2201  		var out graphql.OrderedMap
  2202  		out.Add(field.Alias, func() graphql.Marshaler { return graphql.MarshalString(res) }())
  2203  		return &out
  2204  	}
  2205  }
  2206  
  2207  func (ec *executionContext) _Subscription_initPayload(ctx context.Context, field graphql.CollectedField) func() graphql.Marshaler {
  2208  	ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{
  2209  		Field: field,
  2210  	})
  2211  	rctx := ctx // FIXME: subscriptions are missing request middleware stack https://github.com/99designs/gqlgen/issues/259
  2212  	results, err := ec.resolvers.Subscription().InitPayload(rctx)
  2213  	if err != nil {
  2214  		ec.Error(ctx, err)
  2215  		return nil
  2216  	}
  2217  	return func() graphql.Marshaler {
  2218  		res, ok := <-results
  2219  		if !ok {
  2220  			return nil
  2221  		}
  2222  		var out graphql.OrderedMap
  2223  		out.Add(field.Alias, func() graphql.Marshaler { return graphql.MarshalString(res) }())
  2224  		return &out
  2225  	}
  2226  }
  2227  
  2228  var userImplementors = []string{"User"}
  2229  
  2230  // nolint: gocyclo, errcheck, gas, goconst
  2231  func (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj *User) graphql.Marshaler {
  2232  	fields := graphql.CollectFields(ctx, sel, userImplementors)
  2233  
  2234  	var wg sync.WaitGroup
  2235  	out := graphql.NewOrderedMap(len(fields))
  2236  	invalid := false
  2237  	for i, field := range fields {
  2238  		out.Keys[i] = field.Alias
  2239  
  2240  		switch field.Name {
  2241  		case "__typename":
  2242  			out.Values[i] = graphql.MarshalString("User")
  2243  		case "id":
  2244  			out.Values[i] = ec._User_id(ctx, field, obj)
  2245  			if out.Values[i] == graphql.Null {
  2246  				invalid = true
  2247  			}
  2248  		case "friends":
  2249  			wg.Add(1)
  2250  			go func(i int, field graphql.CollectedField) {
  2251  				out.Values[i] = ec._User_friends(ctx, field, obj)
  2252  				if out.Values[i] == graphql.Null {
  2253  					invalid = true
  2254  				}
  2255  				wg.Done()
  2256  			}(i, field)
  2257  		default:
  2258  			panic("unknown field " + strconv.Quote(field.Name))
  2259  		}
  2260  	}
  2261  	wg.Wait()
  2262  	if invalid {
  2263  		return graphql.Null
  2264  	}
  2265  	return out
  2266  }
  2267  
  2268  // nolint: vetshadow
  2269  func (ec *executionContext) _User_id(ctx context.Context, field graphql.CollectedField, obj *User) graphql.Marshaler {
  2270  	rctx := &graphql.ResolverContext{
  2271  		Object: "User",
  2272  		Args:   nil,
  2273  		Field:  field,
  2274  	}
  2275  	ctx = graphql.WithResolverContext(ctx, rctx)
  2276  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2277  		ctx = rctx // use context from middleware stack in children
  2278  		return obj.ID, nil
  2279  	})
  2280  	if resTmp == nil {
  2281  		if !ec.HasError(rctx) {
  2282  			ec.Errorf(ctx, "must not be null")
  2283  		}
  2284  		return graphql.Null
  2285  	}
  2286  	res := resTmp.(int)
  2287  	rctx.Result = res
  2288  	return graphql.MarshalInt(res)
  2289  }
  2290  
  2291  // nolint: vetshadow
  2292  func (ec *executionContext) _User_friends(ctx context.Context, field graphql.CollectedField, obj *User) graphql.Marshaler {
  2293  	rctx := &graphql.ResolverContext{
  2294  		Object: "User",
  2295  		Args:   nil,
  2296  		Field:  field,
  2297  	}
  2298  	ctx = graphql.WithResolverContext(ctx, rctx)
  2299  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2300  		ctx = rctx // use context from middleware stack in children
  2301  		return ec.resolvers.User().Friends(rctx, obj)
  2302  	})
  2303  	if resTmp == nil {
  2304  		if !ec.HasError(rctx) {
  2305  			ec.Errorf(ctx, "must not be null")
  2306  		}
  2307  		return graphql.Null
  2308  	}
  2309  	res := resTmp.([]User)
  2310  	rctx.Result = res
  2311  
  2312  	arr1 := make(graphql.Array, len(res))
  2313  	var wg sync.WaitGroup
  2314  
  2315  	isLen1 := len(res) == 1
  2316  	if !isLen1 {
  2317  		wg.Add(len(res))
  2318  	}
  2319  
  2320  	for idx1 := range res {
  2321  		idx1 := idx1
  2322  		rctx := &graphql.ResolverContext{
  2323  			Index:  &idx1,
  2324  			Result: &res[idx1],
  2325  		}
  2326  		ctx := graphql.WithResolverContext(ctx, rctx)
  2327  		f := func(idx1 int) {
  2328  			if !isLen1 {
  2329  				defer wg.Done()
  2330  			}
  2331  			arr1[idx1] = func() graphql.Marshaler {
  2332  
  2333  				return ec._User(ctx, field.Selections, &res[idx1])
  2334  			}()
  2335  		}
  2336  		if isLen1 {
  2337  			f(idx1)
  2338  		} else {
  2339  			go f(idx1)
  2340  		}
  2341  
  2342  	}
  2343  	wg.Wait()
  2344  	return arr1
  2345  }
  2346  
  2347  var __DirectiveImplementors = []string{"__Directive"}
  2348  
  2349  // nolint: gocyclo, errcheck, gas, goconst
  2350  func (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler {
  2351  	fields := graphql.CollectFields(ctx, sel, __DirectiveImplementors)
  2352  
  2353  	out := graphql.NewOrderedMap(len(fields))
  2354  	invalid := false
  2355  	for i, field := range fields {
  2356  		out.Keys[i] = field.Alias
  2357  
  2358  		switch field.Name {
  2359  		case "__typename":
  2360  			out.Values[i] = graphql.MarshalString("__Directive")
  2361  		case "name":
  2362  			out.Values[i] = ec.___Directive_name(ctx, field, obj)
  2363  			if out.Values[i] == graphql.Null {
  2364  				invalid = true
  2365  			}
  2366  		case "description":
  2367  			out.Values[i] = ec.___Directive_description(ctx, field, obj)
  2368  		case "locations":
  2369  			out.Values[i] = ec.___Directive_locations(ctx, field, obj)
  2370  			if out.Values[i] == graphql.Null {
  2371  				invalid = true
  2372  			}
  2373  		case "args":
  2374  			out.Values[i] = ec.___Directive_args(ctx, field, obj)
  2375  			if out.Values[i] == graphql.Null {
  2376  				invalid = true
  2377  			}
  2378  		default:
  2379  			panic("unknown field " + strconv.Quote(field.Name))
  2380  		}
  2381  	}
  2382  
  2383  	if invalid {
  2384  		return graphql.Null
  2385  	}
  2386  	return out
  2387  }
  2388  
  2389  // nolint: vetshadow
  2390  func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler {
  2391  	rctx := &graphql.ResolverContext{
  2392  		Object: "__Directive",
  2393  		Args:   nil,
  2394  		Field:  field,
  2395  	}
  2396  	ctx = graphql.WithResolverContext(ctx, rctx)
  2397  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2398  		ctx = rctx // use context from middleware stack in children
  2399  		return obj.Name, nil
  2400  	})
  2401  	if resTmp == nil {
  2402  		if !ec.HasError(rctx) {
  2403  			ec.Errorf(ctx, "must not be null")
  2404  		}
  2405  		return graphql.Null
  2406  	}
  2407  	res := resTmp.(string)
  2408  	rctx.Result = res
  2409  	return graphql.MarshalString(res)
  2410  }
  2411  
  2412  // nolint: vetshadow
  2413  func (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler {
  2414  	rctx := &graphql.ResolverContext{
  2415  		Object: "__Directive",
  2416  		Args:   nil,
  2417  		Field:  field,
  2418  	}
  2419  	ctx = graphql.WithResolverContext(ctx, rctx)
  2420  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2421  		ctx = rctx // use context from middleware stack in children
  2422  		return obj.Description, nil
  2423  	})
  2424  	if resTmp == nil {
  2425  		return graphql.Null
  2426  	}
  2427  	res := resTmp.(string)
  2428  	rctx.Result = res
  2429  	return graphql.MarshalString(res)
  2430  }
  2431  
  2432  // nolint: vetshadow
  2433  func (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler {
  2434  	rctx := &graphql.ResolverContext{
  2435  		Object: "__Directive",
  2436  		Args:   nil,
  2437  		Field:  field,
  2438  	}
  2439  	ctx = graphql.WithResolverContext(ctx, rctx)
  2440  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2441  		ctx = rctx // use context from middleware stack in children
  2442  		return obj.Locations, nil
  2443  	})
  2444  	if resTmp == nil {
  2445  		if !ec.HasError(rctx) {
  2446  			ec.Errorf(ctx, "must not be null")
  2447  		}
  2448  		return graphql.Null
  2449  	}
  2450  	res := resTmp.([]string)
  2451  	rctx.Result = res
  2452  
  2453  	arr1 := make(graphql.Array, len(res))
  2454  
  2455  	for idx1 := range res {
  2456  		arr1[idx1] = func() graphql.Marshaler {
  2457  			return graphql.MarshalString(res[idx1])
  2458  		}()
  2459  	}
  2460  
  2461  	return arr1
  2462  }
  2463  
  2464  // nolint: vetshadow
  2465  func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler {
  2466  	rctx := &graphql.ResolverContext{
  2467  		Object: "__Directive",
  2468  		Args:   nil,
  2469  		Field:  field,
  2470  	}
  2471  	ctx = graphql.WithResolverContext(ctx, rctx)
  2472  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2473  		ctx = rctx // use context from middleware stack in children
  2474  		return obj.Args, nil
  2475  	})
  2476  	if resTmp == nil {
  2477  		if !ec.HasError(rctx) {
  2478  			ec.Errorf(ctx, "must not be null")
  2479  		}
  2480  		return graphql.Null
  2481  	}
  2482  	res := resTmp.([]introspection.InputValue)
  2483  	rctx.Result = res
  2484  
  2485  	arr1 := make(graphql.Array, len(res))
  2486  	var wg sync.WaitGroup
  2487  
  2488  	isLen1 := len(res) == 1
  2489  	if !isLen1 {
  2490  		wg.Add(len(res))
  2491  	}
  2492  
  2493  	for idx1 := range res {
  2494  		idx1 := idx1
  2495  		rctx := &graphql.ResolverContext{
  2496  			Index:  &idx1,
  2497  			Result: &res[idx1],
  2498  		}
  2499  		ctx := graphql.WithResolverContext(ctx, rctx)
  2500  		f := func(idx1 int) {
  2501  			if !isLen1 {
  2502  				defer wg.Done()
  2503  			}
  2504  			arr1[idx1] = func() graphql.Marshaler {
  2505  
  2506  				return ec.___InputValue(ctx, field.Selections, &res[idx1])
  2507  			}()
  2508  		}
  2509  		if isLen1 {
  2510  			f(idx1)
  2511  		} else {
  2512  			go f(idx1)
  2513  		}
  2514  
  2515  	}
  2516  	wg.Wait()
  2517  	return arr1
  2518  }
  2519  
  2520  var __EnumValueImplementors = []string{"__EnumValue"}
  2521  
  2522  // nolint: gocyclo, errcheck, gas, goconst
  2523  func (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler {
  2524  	fields := graphql.CollectFields(ctx, sel, __EnumValueImplementors)
  2525  
  2526  	out := graphql.NewOrderedMap(len(fields))
  2527  	invalid := false
  2528  	for i, field := range fields {
  2529  		out.Keys[i] = field.Alias
  2530  
  2531  		switch field.Name {
  2532  		case "__typename":
  2533  			out.Values[i] = graphql.MarshalString("__EnumValue")
  2534  		case "name":
  2535  			out.Values[i] = ec.___EnumValue_name(ctx, field, obj)
  2536  			if out.Values[i] == graphql.Null {
  2537  				invalid = true
  2538  			}
  2539  		case "description":
  2540  			out.Values[i] = ec.___EnumValue_description(ctx, field, obj)
  2541  		case "isDeprecated":
  2542  			out.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)
  2543  			if out.Values[i] == graphql.Null {
  2544  				invalid = true
  2545  			}
  2546  		case "deprecationReason":
  2547  			out.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)
  2548  		default:
  2549  			panic("unknown field " + strconv.Quote(field.Name))
  2550  		}
  2551  	}
  2552  
  2553  	if invalid {
  2554  		return graphql.Null
  2555  	}
  2556  	return out
  2557  }
  2558  
  2559  // nolint: vetshadow
  2560  func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler {
  2561  	rctx := &graphql.ResolverContext{
  2562  		Object: "__EnumValue",
  2563  		Args:   nil,
  2564  		Field:  field,
  2565  	}
  2566  	ctx = graphql.WithResolverContext(ctx, rctx)
  2567  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2568  		ctx = rctx // use context from middleware stack in children
  2569  		return obj.Name, nil
  2570  	})
  2571  	if resTmp == nil {
  2572  		if !ec.HasError(rctx) {
  2573  			ec.Errorf(ctx, "must not be null")
  2574  		}
  2575  		return graphql.Null
  2576  	}
  2577  	res := resTmp.(string)
  2578  	rctx.Result = res
  2579  	return graphql.MarshalString(res)
  2580  }
  2581  
  2582  // nolint: vetshadow
  2583  func (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler {
  2584  	rctx := &graphql.ResolverContext{
  2585  		Object: "__EnumValue",
  2586  		Args:   nil,
  2587  		Field:  field,
  2588  	}
  2589  	ctx = graphql.WithResolverContext(ctx, rctx)
  2590  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2591  		ctx = rctx // use context from middleware stack in children
  2592  		return obj.Description, nil
  2593  	})
  2594  	if resTmp == nil {
  2595  		return graphql.Null
  2596  	}
  2597  	res := resTmp.(string)
  2598  	rctx.Result = res
  2599  	return graphql.MarshalString(res)
  2600  }
  2601  
  2602  // nolint: vetshadow
  2603  func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler {
  2604  	rctx := &graphql.ResolverContext{
  2605  		Object: "__EnumValue",
  2606  		Args:   nil,
  2607  		Field:  field,
  2608  	}
  2609  	ctx = graphql.WithResolverContext(ctx, rctx)
  2610  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2611  		ctx = rctx // use context from middleware stack in children
  2612  		return obj.IsDeprecated, nil
  2613  	})
  2614  	if resTmp == nil {
  2615  		if !ec.HasError(rctx) {
  2616  			ec.Errorf(ctx, "must not be null")
  2617  		}
  2618  		return graphql.Null
  2619  	}
  2620  	res := resTmp.(bool)
  2621  	rctx.Result = res
  2622  	return graphql.MarshalBoolean(res)
  2623  }
  2624  
  2625  // nolint: vetshadow
  2626  func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler {
  2627  	rctx := &graphql.ResolverContext{
  2628  		Object: "__EnumValue",
  2629  		Args:   nil,
  2630  		Field:  field,
  2631  	}
  2632  	ctx = graphql.WithResolverContext(ctx, rctx)
  2633  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2634  		ctx = rctx // use context from middleware stack in children
  2635  		return obj.DeprecationReason, nil
  2636  	})
  2637  	if resTmp == nil {
  2638  		return graphql.Null
  2639  	}
  2640  	res := resTmp.(string)
  2641  	rctx.Result = res
  2642  	return graphql.MarshalString(res)
  2643  }
  2644  
  2645  var __FieldImplementors = []string{"__Field"}
  2646  
  2647  // nolint: gocyclo, errcheck, gas, goconst
  2648  func (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler {
  2649  	fields := graphql.CollectFields(ctx, sel, __FieldImplementors)
  2650  
  2651  	out := graphql.NewOrderedMap(len(fields))
  2652  	invalid := false
  2653  	for i, field := range fields {
  2654  		out.Keys[i] = field.Alias
  2655  
  2656  		switch field.Name {
  2657  		case "__typename":
  2658  			out.Values[i] = graphql.MarshalString("__Field")
  2659  		case "name":
  2660  			out.Values[i] = ec.___Field_name(ctx, field, obj)
  2661  			if out.Values[i] == graphql.Null {
  2662  				invalid = true
  2663  			}
  2664  		case "description":
  2665  			out.Values[i] = ec.___Field_description(ctx, field, obj)
  2666  		case "args":
  2667  			out.Values[i] = ec.___Field_args(ctx, field, obj)
  2668  			if out.Values[i] == graphql.Null {
  2669  				invalid = true
  2670  			}
  2671  		case "type":
  2672  			out.Values[i] = ec.___Field_type(ctx, field, obj)
  2673  			if out.Values[i] == graphql.Null {
  2674  				invalid = true
  2675  			}
  2676  		case "isDeprecated":
  2677  			out.Values[i] = ec.___Field_isDeprecated(ctx, field, obj)
  2678  			if out.Values[i] == graphql.Null {
  2679  				invalid = true
  2680  			}
  2681  		case "deprecationReason":
  2682  			out.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)
  2683  		default:
  2684  			panic("unknown field " + strconv.Quote(field.Name))
  2685  		}
  2686  	}
  2687  
  2688  	if invalid {
  2689  		return graphql.Null
  2690  	}
  2691  	return out
  2692  }
  2693  
  2694  // nolint: vetshadow
  2695  func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  2696  	rctx := &graphql.ResolverContext{
  2697  		Object: "__Field",
  2698  		Args:   nil,
  2699  		Field:  field,
  2700  	}
  2701  	ctx = graphql.WithResolverContext(ctx, rctx)
  2702  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2703  		ctx = rctx // use context from middleware stack in children
  2704  		return obj.Name, nil
  2705  	})
  2706  	if resTmp == nil {
  2707  		if !ec.HasError(rctx) {
  2708  			ec.Errorf(ctx, "must not be null")
  2709  		}
  2710  		return graphql.Null
  2711  	}
  2712  	res := resTmp.(string)
  2713  	rctx.Result = res
  2714  	return graphql.MarshalString(res)
  2715  }
  2716  
  2717  // nolint: vetshadow
  2718  func (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  2719  	rctx := &graphql.ResolverContext{
  2720  		Object: "__Field",
  2721  		Args:   nil,
  2722  		Field:  field,
  2723  	}
  2724  	ctx = graphql.WithResolverContext(ctx, rctx)
  2725  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2726  		ctx = rctx // use context from middleware stack in children
  2727  		return obj.Description, nil
  2728  	})
  2729  	if resTmp == nil {
  2730  		return graphql.Null
  2731  	}
  2732  	res := resTmp.(string)
  2733  	rctx.Result = res
  2734  	return graphql.MarshalString(res)
  2735  }
  2736  
  2737  // nolint: vetshadow
  2738  func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  2739  	rctx := &graphql.ResolverContext{
  2740  		Object: "__Field",
  2741  		Args:   nil,
  2742  		Field:  field,
  2743  	}
  2744  	ctx = graphql.WithResolverContext(ctx, rctx)
  2745  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2746  		ctx = rctx // use context from middleware stack in children
  2747  		return obj.Args, nil
  2748  	})
  2749  	if resTmp == nil {
  2750  		if !ec.HasError(rctx) {
  2751  			ec.Errorf(ctx, "must not be null")
  2752  		}
  2753  		return graphql.Null
  2754  	}
  2755  	res := resTmp.([]introspection.InputValue)
  2756  	rctx.Result = res
  2757  
  2758  	arr1 := make(graphql.Array, len(res))
  2759  	var wg sync.WaitGroup
  2760  
  2761  	isLen1 := len(res) == 1
  2762  	if !isLen1 {
  2763  		wg.Add(len(res))
  2764  	}
  2765  
  2766  	for idx1 := range res {
  2767  		idx1 := idx1
  2768  		rctx := &graphql.ResolverContext{
  2769  			Index:  &idx1,
  2770  			Result: &res[idx1],
  2771  		}
  2772  		ctx := graphql.WithResolverContext(ctx, rctx)
  2773  		f := func(idx1 int) {
  2774  			if !isLen1 {
  2775  				defer wg.Done()
  2776  			}
  2777  			arr1[idx1] = func() graphql.Marshaler {
  2778  
  2779  				return ec.___InputValue(ctx, field.Selections, &res[idx1])
  2780  			}()
  2781  		}
  2782  		if isLen1 {
  2783  			f(idx1)
  2784  		} else {
  2785  			go f(idx1)
  2786  		}
  2787  
  2788  	}
  2789  	wg.Wait()
  2790  	return arr1
  2791  }
  2792  
  2793  // nolint: vetshadow
  2794  func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  2795  	rctx := &graphql.ResolverContext{
  2796  		Object: "__Field",
  2797  		Args:   nil,
  2798  		Field:  field,
  2799  	}
  2800  	ctx = graphql.WithResolverContext(ctx, rctx)
  2801  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2802  		ctx = rctx // use context from middleware stack in children
  2803  		return obj.Type, nil
  2804  	})
  2805  	if resTmp == nil {
  2806  		if !ec.HasError(rctx) {
  2807  			ec.Errorf(ctx, "must not be null")
  2808  		}
  2809  		return graphql.Null
  2810  	}
  2811  	res := resTmp.(*introspection.Type)
  2812  	rctx.Result = res
  2813  
  2814  	if res == nil {
  2815  		if !ec.HasError(rctx) {
  2816  			ec.Errorf(ctx, "must not be null")
  2817  		}
  2818  		return graphql.Null
  2819  	}
  2820  
  2821  	return ec.___Type(ctx, field.Selections, res)
  2822  }
  2823  
  2824  // nolint: vetshadow
  2825  func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  2826  	rctx := &graphql.ResolverContext{
  2827  		Object: "__Field",
  2828  		Args:   nil,
  2829  		Field:  field,
  2830  	}
  2831  	ctx = graphql.WithResolverContext(ctx, rctx)
  2832  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2833  		ctx = rctx // use context from middleware stack in children
  2834  		return obj.IsDeprecated, nil
  2835  	})
  2836  	if resTmp == nil {
  2837  		if !ec.HasError(rctx) {
  2838  			ec.Errorf(ctx, "must not be null")
  2839  		}
  2840  		return graphql.Null
  2841  	}
  2842  	res := resTmp.(bool)
  2843  	rctx.Result = res
  2844  	return graphql.MarshalBoolean(res)
  2845  }
  2846  
  2847  // nolint: vetshadow
  2848  func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler {
  2849  	rctx := &graphql.ResolverContext{
  2850  		Object: "__Field",
  2851  		Args:   nil,
  2852  		Field:  field,
  2853  	}
  2854  	ctx = graphql.WithResolverContext(ctx, rctx)
  2855  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2856  		ctx = rctx // use context from middleware stack in children
  2857  		return obj.DeprecationReason, nil
  2858  	})
  2859  	if resTmp == nil {
  2860  		return graphql.Null
  2861  	}
  2862  	res := resTmp.(string)
  2863  	rctx.Result = res
  2864  	return graphql.MarshalString(res)
  2865  }
  2866  
  2867  var __InputValueImplementors = []string{"__InputValue"}
  2868  
  2869  // nolint: gocyclo, errcheck, gas, goconst
  2870  func (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler {
  2871  	fields := graphql.CollectFields(ctx, sel, __InputValueImplementors)
  2872  
  2873  	out := graphql.NewOrderedMap(len(fields))
  2874  	invalid := false
  2875  	for i, field := range fields {
  2876  		out.Keys[i] = field.Alias
  2877  
  2878  		switch field.Name {
  2879  		case "__typename":
  2880  			out.Values[i] = graphql.MarshalString("__InputValue")
  2881  		case "name":
  2882  			out.Values[i] = ec.___InputValue_name(ctx, field, obj)
  2883  			if out.Values[i] == graphql.Null {
  2884  				invalid = true
  2885  			}
  2886  		case "description":
  2887  			out.Values[i] = ec.___InputValue_description(ctx, field, obj)
  2888  		case "type":
  2889  			out.Values[i] = ec.___InputValue_type(ctx, field, obj)
  2890  			if out.Values[i] == graphql.Null {
  2891  				invalid = true
  2892  			}
  2893  		case "defaultValue":
  2894  			out.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)
  2895  		default:
  2896  			panic("unknown field " + strconv.Quote(field.Name))
  2897  		}
  2898  	}
  2899  
  2900  	if invalid {
  2901  		return graphql.Null
  2902  	}
  2903  	return out
  2904  }
  2905  
  2906  // nolint: vetshadow
  2907  func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler {
  2908  	rctx := &graphql.ResolverContext{
  2909  		Object: "__InputValue",
  2910  		Args:   nil,
  2911  		Field:  field,
  2912  	}
  2913  	ctx = graphql.WithResolverContext(ctx, rctx)
  2914  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2915  		ctx = rctx // use context from middleware stack in children
  2916  		return obj.Name, nil
  2917  	})
  2918  	if resTmp == nil {
  2919  		if !ec.HasError(rctx) {
  2920  			ec.Errorf(ctx, "must not be null")
  2921  		}
  2922  		return graphql.Null
  2923  	}
  2924  	res := resTmp.(string)
  2925  	rctx.Result = res
  2926  	return graphql.MarshalString(res)
  2927  }
  2928  
  2929  // nolint: vetshadow
  2930  func (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler {
  2931  	rctx := &graphql.ResolverContext{
  2932  		Object: "__InputValue",
  2933  		Args:   nil,
  2934  		Field:  field,
  2935  	}
  2936  	ctx = graphql.WithResolverContext(ctx, rctx)
  2937  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2938  		ctx = rctx // use context from middleware stack in children
  2939  		return obj.Description, nil
  2940  	})
  2941  	if resTmp == nil {
  2942  		return graphql.Null
  2943  	}
  2944  	res := resTmp.(string)
  2945  	rctx.Result = res
  2946  	return graphql.MarshalString(res)
  2947  }
  2948  
  2949  // nolint: vetshadow
  2950  func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler {
  2951  	rctx := &graphql.ResolverContext{
  2952  		Object: "__InputValue",
  2953  		Args:   nil,
  2954  		Field:  field,
  2955  	}
  2956  	ctx = graphql.WithResolverContext(ctx, rctx)
  2957  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2958  		ctx = rctx // use context from middleware stack in children
  2959  		return obj.Type, nil
  2960  	})
  2961  	if resTmp == nil {
  2962  		if !ec.HasError(rctx) {
  2963  			ec.Errorf(ctx, "must not be null")
  2964  		}
  2965  		return graphql.Null
  2966  	}
  2967  	res := resTmp.(*introspection.Type)
  2968  	rctx.Result = res
  2969  
  2970  	if res == nil {
  2971  		if !ec.HasError(rctx) {
  2972  			ec.Errorf(ctx, "must not be null")
  2973  		}
  2974  		return graphql.Null
  2975  	}
  2976  
  2977  	return ec.___Type(ctx, field.Selections, res)
  2978  }
  2979  
  2980  // nolint: vetshadow
  2981  func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler {
  2982  	rctx := &graphql.ResolverContext{
  2983  		Object: "__InputValue",
  2984  		Args:   nil,
  2985  		Field:  field,
  2986  	}
  2987  	ctx = graphql.WithResolverContext(ctx, rctx)
  2988  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  2989  		ctx = rctx // use context from middleware stack in children
  2990  		return obj.DefaultValue, nil
  2991  	})
  2992  	if resTmp == nil {
  2993  		return graphql.Null
  2994  	}
  2995  	res := resTmp.(*string)
  2996  	rctx.Result = res
  2997  
  2998  	if res == nil {
  2999  		return graphql.Null
  3000  	}
  3001  	return graphql.MarshalString(*res)
  3002  }
  3003  
  3004  var __SchemaImplementors = []string{"__Schema"}
  3005  
  3006  // nolint: gocyclo, errcheck, gas, goconst
  3007  func (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler {
  3008  	fields := graphql.CollectFields(ctx, sel, __SchemaImplementors)
  3009  
  3010  	out := graphql.NewOrderedMap(len(fields))
  3011  	invalid := false
  3012  	for i, field := range fields {
  3013  		out.Keys[i] = field.Alias
  3014  
  3015  		switch field.Name {
  3016  		case "__typename":
  3017  			out.Values[i] = graphql.MarshalString("__Schema")
  3018  		case "types":
  3019  			out.Values[i] = ec.___Schema_types(ctx, field, obj)
  3020  			if out.Values[i] == graphql.Null {
  3021  				invalid = true
  3022  			}
  3023  		case "queryType":
  3024  			out.Values[i] = ec.___Schema_queryType(ctx, field, obj)
  3025  			if out.Values[i] == graphql.Null {
  3026  				invalid = true
  3027  			}
  3028  		case "mutationType":
  3029  			out.Values[i] = ec.___Schema_mutationType(ctx, field, obj)
  3030  		case "subscriptionType":
  3031  			out.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)
  3032  		case "directives":
  3033  			out.Values[i] = ec.___Schema_directives(ctx, field, obj)
  3034  			if out.Values[i] == graphql.Null {
  3035  				invalid = true
  3036  			}
  3037  		default:
  3038  			panic("unknown field " + strconv.Quote(field.Name))
  3039  		}
  3040  	}
  3041  
  3042  	if invalid {
  3043  		return graphql.Null
  3044  	}
  3045  	return out
  3046  }
  3047  
  3048  // nolint: vetshadow
  3049  func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler {
  3050  	rctx := &graphql.ResolverContext{
  3051  		Object: "__Schema",
  3052  		Args:   nil,
  3053  		Field:  field,
  3054  	}
  3055  	ctx = graphql.WithResolverContext(ctx, rctx)
  3056  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3057  		ctx = rctx // use context from middleware stack in children
  3058  		return obj.Types(), nil
  3059  	})
  3060  	if resTmp == nil {
  3061  		if !ec.HasError(rctx) {
  3062  			ec.Errorf(ctx, "must not be null")
  3063  		}
  3064  		return graphql.Null
  3065  	}
  3066  	res := resTmp.([]introspection.Type)
  3067  	rctx.Result = res
  3068  
  3069  	arr1 := make(graphql.Array, len(res))
  3070  	var wg sync.WaitGroup
  3071  
  3072  	isLen1 := len(res) == 1
  3073  	if !isLen1 {
  3074  		wg.Add(len(res))
  3075  	}
  3076  
  3077  	for idx1 := range res {
  3078  		idx1 := idx1
  3079  		rctx := &graphql.ResolverContext{
  3080  			Index:  &idx1,
  3081  			Result: &res[idx1],
  3082  		}
  3083  		ctx := graphql.WithResolverContext(ctx, rctx)
  3084  		f := func(idx1 int) {
  3085  			if !isLen1 {
  3086  				defer wg.Done()
  3087  			}
  3088  			arr1[idx1] = func() graphql.Marshaler {
  3089  
  3090  				return ec.___Type(ctx, field.Selections, &res[idx1])
  3091  			}()
  3092  		}
  3093  		if isLen1 {
  3094  			f(idx1)
  3095  		} else {
  3096  			go f(idx1)
  3097  		}
  3098  
  3099  	}
  3100  	wg.Wait()
  3101  	return arr1
  3102  }
  3103  
  3104  // nolint: vetshadow
  3105  func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler {
  3106  	rctx := &graphql.ResolverContext{
  3107  		Object: "__Schema",
  3108  		Args:   nil,
  3109  		Field:  field,
  3110  	}
  3111  	ctx = graphql.WithResolverContext(ctx, rctx)
  3112  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3113  		ctx = rctx // use context from middleware stack in children
  3114  		return obj.QueryType(), nil
  3115  	})
  3116  	if resTmp == nil {
  3117  		if !ec.HasError(rctx) {
  3118  			ec.Errorf(ctx, "must not be null")
  3119  		}
  3120  		return graphql.Null
  3121  	}
  3122  	res := resTmp.(*introspection.Type)
  3123  	rctx.Result = res
  3124  
  3125  	if res == nil {
  3126  		if !ec.HasError(rctx) {
  3127  			ec.Errorf(ctx, "must not be null")
  3128  		}
  3129  		return graphql.Null
  3130  	}
  3131  
  3132  	return ec.___Type(ctx, field.Selections, res)
  3133  }
  3134  
  3135  // nolint: vetshadow
  3136  func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler {
  3137  	rctx := &graphql.ResolverContext{
  3138  		Object: "__Schema",
  3139  		Args:   nil,
  3140  		Field:  field,
  3141  	}
  3142  	ctx = graphql.WithResolverContext(ctx, rctx)
  3143  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3144  		ctx = rctx // use context from middleware stack in children
  3145  		return obj.MutationType(), nil
  3146  	})
  3147  	if resTmp == nil {
  3148  		return graphql.Null
  3149  	}
  3150  	res := resTmp.(*introspection.Type)
  3151  	rctx.Result = res
  3152  
  3153  	if res == nil {
  3154  		return graphql.Null
  3155  	}
  3156  
  3157  	return ec.___Type(ctx, field.Selections, res)
  3158  }
  3159  
  3160  // nolint: vetshadow
  3161  func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler {
  3162  	rctx := &graphql.ResolverContext{
  3163  		Object: "__Schema",
  3164  		Args:   nil,
  3165  		Field:  field,
  3166  	}
  3167  	ctx = graphql.WithResolverContext(ctx, rctx)
  3168  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3169  		ctx = rctx // use context from middleware stack in children
  3170  		return obj.SubscriptionType(), nil
  3171  	})
  3172  	if resTmp == nil {
  3173  		return graphql.Null
  3174  	}
  3175  	res := resTmp.(*introspection.Type)
  3176  	rctx.Result = res
  3177  
  3178  	if res == nil {
  3179  		return graphql.Null
  3180  	}
  3181  
  3182  	return ec.___Type(ctx, field.Selections, res)
  3183  }
  3184  
  3185  // nolint: vetshadow
  3186  func (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler {
  3187  	rctx := &graphql.ResolverContext{
  3188  		Object: "__Schema",
  3189  		Args:   nil,
  3190  		Field:  field,
  3191  	}
  3192  	ctx = graphql.WithResolverContext(ctx, rctx)
  3193  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3194  		ctx = rctx // use context from middleware stack in children
  3195  		return obj.Directives(), nil
  3196  	})
  3197  	if resTmp == nil {
  3198  		if !ec.HasError(rctx) {
  3199  			ec.Errorf(ctx, "must not be null")
  3200  		}
  3201  		return graphql.Null
  3202  	}
  3203  	res := resTmp.([]introspection.Directive)
  3204  	rctx.Result = res
  3205  
  3206  	arr1 := make(graphql.Array, len(res))
  3207  	var wg sync.WaitGroup
  3208  
  3209  	isLen1 := len(res) == 1
  3210  	if !isLen1 {
  3211  		wg.Add(len(res))
  3212  	}
  3213  
  3214  	for idx1 := range res {
  3215  		idx1 := idx1
  3216  		rctx := &graphql.ResolverContext{
  3217  			Index:  &idx1,
  3218  			Result: &res[idx1],
  3219  		}
  3220  		ctx := graphql.WithResolverContext(ctx, rctx)
  3221  		f := func(idx1 int) {
  3222  			if !isLen1 {
  3223  				defer wg.Done()
  3224  			}
  3225  			arr1[idx1] = func() graphql.Marshaler {
  3226  
  3227  				return ec.___Directive(ctx, field.Selections, &res[idx1])
  3228  			}()
  3229  		}
  3230  		if isLen1 {
  3231  			f(idx1)
  3232  		} else {
  3233  			go f(idx1)
  3234  		}
  3235  
  3236  	}
  3237  	wg.Wait()
  3238  	return arr1
  3239  }
  3240  
  3241  var __TypeImplementors = []string{"__Type"}
  3242  
  3243  // nolint: gocyclo, errcheck, gas, goconst
  3244  func (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler {
  3245  	fields := graphql.CollectFields(ctx, sel, __TypeImplementors)
  3246  
  3247  	out := graphql.NewOrderedMap(len(fields))
  3248  	invalid := false
  3249  	for i, field := range fields {
  3250  		out.Keys[i] = field.Alias
  3251  
  3252  		switch field.Name {
  3253  		case "__typename":
  3254  			out.Values[i] = graphql.MarshalString("__Type")
  3255  		case "kind":
  3256  			out.Values[i] = ec.___Type_kind(ctx, field, obj)
  3257  			if out.Values[i] == graphql.Null {
  3258  				invalid = true
  3259  			}
  3260  		case "name":
  3261  			out.Values[i] = ec.___Type_name(ctx, field, obj)
  3262  		case "description":
  3263  			out.Values[i] = ec.___Type_description(ctx, field, obj)
  3264  		case "fields":
  3265  			out.Values[i] = ec.___Type_fields(ctx, field, obj)
  3266  		case "interfaces":
  3267  			out.Values[i] = ec.___Type_interfaces(ctx, field, obj)
  3268  		case "possibleTypes":
  3269  			out.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)
  3270  		case "enumValues":
  3271  			out.Values[i] = ec.___Type_enumValues(ctx, field, obj)
  3272  		case "inputFields":
  3273  			out.Values[i] = ec.___Type_inputFields(ctx, field, obj)
  3274  		case "ofType":
  3275  			out.Values[i] = ec.___Type_ofType(ctx, field, obj)
  3276  		default:
  3277  			panic("unknown field " + strconv.Quote(field.Name))
  3278  		}
  3279  	}
  3280  
  3281  	if invalid {
  3282  		return graphql.Null
  3283  	}
  3284  	return out
  3285  }
  3286  
  3287  // nolint: vetshadow
  3288  func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  3289  	rctx := &graphql.ResolverContext{
  3290  		Object: "__Type",
  3291  		Args:   nil,
  3292  		Field:  field,
  3293  	}
  3294  	ctx = graphql.WithResolverContext(ctx, rctx)
  3295  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3296  		ctx = rctx // use context from middleware stack in children
  3297  		return obj.Kind(), nil
  3298  	})
  3299  	if resTmp == nil {
  3300  		if !ec.HasError(rctx) {
  3301  			ec.Errorf(ctx, "must not be null")
  3302  		}
  3303  		return graphql.Null
  3304  	}
  3305  	res := resTmp.(string)
  3306  	rctx.Result = res
  3307  	return graphql.MarshalString(res)
  3308  }
  3309  
  3310  // nolint: vetshadow
  3311  func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  3312  	rctx := &graphql.ResolverContext{
  3313  		Object: "__Type",
  3314  		Args:   nil,
  3315  		Field:  field,
  3316  	}
  3317  	ctx = graphql.WithResolverContext(ctx, rctx)
  3318  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3319  		ctx = rctx // use context from middleware stack in children
  3320  		return obj.Name(), nil
  3321  	})
  3322  	if resTmp == nil {
  3323  		return graphql.Null
  3324  	}
  3325  	res := resTmp.(*string)
  3326  	rctx.Result = res
  3327  
  3328  	if res == nil {
  3329  		return graphql.Null
  3330  	}
  3331  	return graphql.MarshalString(*res)
  3332  }
  3333  
  3334  // nolint: vetshadow
  3335  func (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  3336  	rctx := &graphql.ResolverContext{
  3337  		Object: "__Type",
  3338  		Args:   nil,
  3339  		Field:  field,
  3340  	}
  3341  	ctx = graphql.WithResolverContext(ctx, rctx)
  3342  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3343  		ctx = rctx // use context from middleware stack in children
  3344  		return obj.Description(), nil
  3345  	})
  3346  	if resTmp == nil {
  3347  		return graphql.Null
  3348  	}
  3349  	res := resTmp.(string)
  3350  	rctx.Result = res
  3351  	return graphql.MarshalString(res)
  3352  }
  3353  
  3354  // nolint: vetshadow
  3355  func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  3356  	rawArgs := field.ArgumentMap(ec.Variables)
  3357  	args, err := field___Type_fields_args(rawArgs)
  3358  	if err != nil {
  3359  		ec.Error(ctx, err)
  3360  		return graphql.Null
  3361  	}
  3362  	rctx := &graphql.ResolverContext{
  3363  		Object: "__Type",
  3364  		Args:   args,
  3365  		Field:  field,
  3366  	}
  3367  	ctx = graphql.WithResolverContext(ctx, rctx)
  3368  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3369  		ctx = rctx // use context from middleware stack in children
  3370  		return obj.Fields(args["includeDeprecated"].(bool)), nil
  3371  	})
  3372  	if resTmp == nil {
  3373  		return graphql.Null
  3374  	}
  3375  	res := resTmp.([]introspection.Field)
  3376  	rctx.Result = res
  3377  
  3378  	arr1 := make(graphql.Array, len(res))
  3379  	var wg sync.WaitGroup
  3380  
  3381  	isLen1 := len(res) == 1
  3382  	if !isLen1 {
  3383  		wg.Add(len(res))
  3384  	}
  3385  
  3386  	for idx1 := range res {
  3387  		idx1 := idx1
  3388  		rctx := &graphql.ResolverContext{
  3389  			Index:  &idx1,
  3390  			Result: &res[idx1],
  3391  		}
  3392  		ctx := graphql.WithResolverContext(ctx, rctx)
  3393  		f := func(idx1 int) {
  3394  			if !isLen1 {
  3395  				defer wg.Done()
  3396  			}
  3397  			arr1[idx1] = func() graphql.Marshaler {
  3398  
  3399  				return ec.___Field(ctx, field.Selections, &res[idx1])
  3400  			}()
  3401  		}
  3402  		if isLen1 {
  3403  			f(idx1)
  3404  		} else {
  3405  			go f(idx1)
  3406  		}
  3407  
  3408  	}
  3409  	wg.Wait()
  3410  	return arr1
  3411  }
  3412  
  3413  // nolint: vetshadow
  3414  func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  3415  	rctx := &graphql.ResolverContext{
  3416  		Object: "__Type",
  3417  		Args:   nil,
  3418  		Field:  field,
  3419  	}
  3420  	ctx = graphql.WithResolverContext(ctx, rctx)
  3421  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3422  		ctx = rctx // use context from middleware stack in children
  3423  		return obj.Interfaces(), nil
  3424  	})
  3425  	if resTmp == nil {
  3426  		return graphql.Null
  3427  	}
  3428  	res := resTmp.([]introspection.Type)
  3429  	rctx.Result = res
  3430  
  3431  	arr1 := make(graphql.Array, len(res))
  3432  	var wg sync.WaitGroup
  3433  
  3434  	isLen1 := len(res) == 1
  3435  	if !isLen1 {
  3436  		wg.Add(len(res))
  3437  	}
  3438  
  3439  	for idx1 := range res {
  3440  		idx1 := idx1
  3441  		rctx := &graphql.ResolverContext{
  3442  			Index:  &idx1,
  3443  			Result: &res[idx1],
  3444  		}
  3445  		ctx := graphql.WithResolverContext(ctx, rctx)
  3446  		f := func(idx1 int) {
  3447  			if !isLen1 {
  3448  				defer wg.Done()
  3449  			}
  3450  			arr1[idx1] = func() graphql.Marshaler {
  3451  
  3452  				return ec.___Type(ctx, field.Selections, &res[idx1])
  3453  			}()
  3454  		}
  3455  		if isLen1 {
  3456  			f(idx1)
  3457  		} else {
  3458  			go f(idx1)
  3459  		}
  3460  
  3461  	}
  3462  	wg.Wait()
  3463  	return arr1
  3464  }
  3465  
  3466  // nolint: vetshadow
  3467  func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  3468  	rctx := &graphql.ResolverContext{
  3469  		Object: "__Type",
  3470  		Args:   nil,
  3471  		Field:  field,
  3472  	}
  3473  	ctx = graphql.WithResolverContext(ctx, rctx)
  3474  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3475  		ctx = rctx // use context from middleware stack in children
  3476  		return obj.PossibleTypes(), nil
  3477  	})
  3478  	if resTmp == nil {
  3479  		return graphql.Null
  3480  	}
  3481  	res := resTmp.([]introspection.Type)
  3482  	rctx.Result = res
  3483  
  3484  	arr1 := make(graphql.Array, len(res))
  3485  	var wg sync.WaitGroup
  3486  
  3487  	isLen1 := len(res) == 1
  3488  	if !isLen1 {
  3489  		wg.Add(len(res))
  3490  	}
  3491  
  3492  	for idx1 := range res {
  3493  		idx1 := idx1
  3494  		rctx := &graphql.ResolverContext{
  3495  			Index:  &idx1,
  3496  			Result: &res[idx1],
  3497  		}
  3498  		ctx := graphql.WithResolverContext(ctx, rctx)
  3499  		f := func(idx1 int) {
  3500  			if !isLen1 {
  3501  				defer wg.Done()
  3502  			}
  3503  			arr1[idx1] = func() graphql.Marshaler {
  3504  
  3505  				return ec.___Type(ctx, field.Selections, &res[idx1])
  3506  			}()
  3507  		}
  3508  		if isLen1 {
  3509  			f(idx1)
  3510  		} else {
  3511  			go f(idx1)
  3512  		}
  3513  
  3514  	}
  3515  	wg.Wait()
  3516  	return arr1
  3517  }
  3518  
  3519  // nolint: vetshadow
  3520  func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  3521  	rawArgs := field.ArgumentMap(ec.Variables)
  3522  	args, err := field___Type_enumValues_args(rawArgs)
  3523  	if err != nil {
  3524  		ec.Error(ctx, err)
  3525  		return graphql.Null
  3526  	}
  3527  	rctx := &graphql.ResolverContext{
  3528  		Object: "__Type",
  3529  		Args:   args,
  3530  		Field:  field,
  3531  	}
  3532  	ctx = graphql.WithResolverContext(ctx, rctx)
  3533  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3534  		ctx = rctx // use context from middleware stack in children
  3535  		return obj.EnumValues(args["includeDeprecated"].(bool)), nil
  3536  	})
  3537  	if resTmp == nil {
  3538  		return graphql.Null
  3539  	}
  3540  	res := resTmp.([]introspection.EnumValue)
  3541  	rctx.Result = res
  3542  
  3543  	arr1 := make(graphql.Array, len(res))
  3544  	var wg sync.WaitGroup
  3545  
  3546  	isLen1 := len(res) == 1
  3547  	if !isLen1 {
  3548  		wg.Add(len(res))
  3549  	}
  3550  
  3551  	for idx1 := range res {
  3552  		idx1 := idx1
  3553  		rctx := &graphql.ResolverContext{
  3554  			Index:  &idx1,
  3555  			Result: &res[idx1],
  3556  		}
  3557  		ctx := graphql.WithResolverContext(ctx, rctx)
  3558  		f := func(idx1 int) {
  3559  			if !isLen1 {
  3560  				defer wg.Done()
  3561  			}
  3562  			arr1[idx1] = func() graphql.Marshaler {
  3563  
  3564  				return ec.___EnumValue(ctx, field.Selections, &res[idx1])
  3565  			}()
  3566  		}
  3567  		if isLen1 {
  3568  			f(idx1)
  3569  		} else {
  3570  			go f(idx1)
  3571  		}
  3572  
  3573  	}
  3574  	wg.Wait()
  3575  	return arr1
  3576  }
  3577  
  3578  // nolint: vetshadow
  3579  func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  3580  	rctx := &graphql.ResolverContext{
  3581  		Object: "__Type",
  3582  		Args:   nil,
  3583  		Field:  field,
  3584  	}
  3585  	ctx = graphql.WithResolverContext(ctx, rctx)
  3586  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3587  		ctx = rctx // use context from middleware stack in children
  3588  		return obj.InputFields(), nil
  3589  	})
  3590  	if resTmp == nil {
  3591  		return graphql.Null
  3592  	}
  3593  	res := resTmp.([]introspection.InputValue)
  3594  	rctx.Result = res
  3595  
  3596  	arr1 := make(graphql.Array, len(res))
  3597  	var wg sync.WaitGroup
  3598  
  3599  	isLen1 := len(res) == 1
  3600  	if !isLen1 {
  3601  		wg.Add(len(res))
  3602  	}
  3603  
  3604  	for idx1 := range res {
  3605  		idx1 := idx1
  3606  		rctx := &graphql.ResolverContext{
  3607  			Index:  &idx1,
  3608  			Result: &res[idx1],
  3609  		}
  3610  		ctx := graphql.WithResolverContext(ctx, rctx)
  3611  		f := func(idx1 int) {
  3612  			if !isLen1 {
  3613  				defer wg.Done()
  3614  			}
  3615  			arr1[idx1] = func() graphql.Marshaler {
  3616  
  3617  				return ec.___InputValue(ctx, field.Selections, &res[idx1])
  3618  			}()
  3619  		}
  3620  		if isLen1 {
  3621  			f(idx1)
  3622  		} else {
  3623  			go f(idx1)
  3624  		}
  3625  
  3626  	}
  3627  	wg.Wait()
  3628  	return arr1
  3629  }
  3630  
  3631  // nolint: vetshadow
  3632  func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler {
  3633  	rctx := &graphql.ResolverContext{
  3634  		Object: "__Type",
  3635  		Args:   nil,
  3636  		Field:  field,
  3637  	}
  3638  	ctx = graphql.WithResolverContext(ctx, rctx)
  3639  	resTmp := ec.FieldMiddleware(ctx, obj, func(rctx context.Context) (interface{}, error) {
  3640  		ctx = rctx // use context from middleware stack in children
  3641  		return obj.OfType(), nil
  3642  	})
  3643  	if resTmp == nil {
  3644  		return graphql.Null
  3645  	}
  3646  	res := resTmp.(*introspection.Type)
  3647  	rctx.Result = res
  3648  
  3649  	if res == nil {
  3650  		return graphql.Null
  3651  	}
  3652  
  3653  	return ec.___Type(ctx, field.Selections, res)
  3654  }
  3655  
  3656  func (ec *executionContext) _Shape(ctx context.Context, sel ast.SelectionSet, obj *Shape) graphql.Marshaler {
  3657  	switch obj := (*obj).(type) {
  3658  	case nil:
  3659  		return graphql.Null
  3660  	case *Circle:
  3661  		return ec._Circle(ctx, sel, obj)
  3662  	case *Rectangle:
  3663  		return ec._Rectangle(ctx, sel, obj)
  3664  	default:
  3665  		panic(fmt.Errorf("unexpected type %T", obj))
  3666  	}
  3667  }
  3668  
  3669  func (ec *executionContext) _ShapeUnion(ctx context.Context, sel ast.SelectionSet, obj *ShapeUnion) graphql.Marshaler {
  3670  	switch obj := (*obj).(type) {
  3671  	case nil:
  3672  		return graphql.Null
  3673  	case *Circle:
  3674  		return ec._Circle(ctx, sel, obj)
  3675  	case *Rectangle:
  3676  		return ec._Rectangle(ctx, sel, obj)
  3677  	default:
  3678  		panic(fmt.Errorf("unexpected type %T", obj))
  3679  	}
  3680  }
  3681  
  3682  func UnmarshalInnerInput(v interface{}) (InnerInput, error) {
  3683  	var it InnerInput
  3684  	var asMap = v.(map[string]interface{})
  3685  
  3686  	for k, v := range asMap {
  3687  		switch k {
  3688  		case "id":
  3689  			var err error
  3690  			it.ID, err = graphql.UnmarshalInt(v)
  3691  			if err != nil {
  3692  				return it, err
  3693  			}
  3694  		}
  3695  	}
  3696  
  3697  	return it, nil
  3698  }
  3699  
  3700  func UnmarshalKeywords(v interface{}) (Keywords, error) {
  3701  	var it Keywords
  3702  	var asMap = v.(map[string]interface{})
  3703  
  3704  	for k, v := range asMap {
  3705  		switch k {
  3706  		case "break":
  3707  			var err error
  3708  			it.Break, err = graphql.UnmarshalString(v)
  3709  			if err != nil {
  3710  				return it, err
  3711  			}
  3712  		case "default":
  3713  			var err error
  3714  			it.Default, err = graphql.UnmarshalString(v)
  3715  			if err != nil {
  3716  				return it, err
  3717  			}
  3718  		case "func":
  3719  			var err error
  3720  			it.Func, err = graphql.UnmarshalString(v)
  3721  			if err != nil {
  3722  				return it, err
  3723  			}
  3724  		case "interface":
  3725  			var err error
  3726  			it.Interface, err = graphql.UnmarshalString(v)
  3727  			if err != nil {
  3728  				return it, err
  3729  			}
  3730  		case "select":
  3731  			var err error
  3732  			it.Select, err = graphql.UnmarshalString(v)
  3733  			if err != nil {
  3734  				return it, err
  3735  			}
  3736  		case "case":
  3737  			var err error
  3738  			it.Case, err = graphql.UnmarshalString(v)
  3739  			if err != nil {
  3740  				return it, err
  3741  			}
  3742  		case "defer":
  3743  			var err error
  3744  			it.Defer, err = graphql.UnmarshalString(v)
  3745  			if err != nil {
  3746  				return it, err
  3747  			}
  3748  		case "go":
  3749  			var err error
  3750  			it.Go, err = graphql.UnmarshalString(v)
  3751  			if err != nil {
  3752  				return it, err
  3753  			}
  3754  		case "map":
  3755  			var err error
  3756  			it.Map, err = graphql.UnmarshalString(v)
  3757  			if err != nil {
  3758  				return it, err
  3759  			}
  3760  		case "struct":
  3761  			var err error
  3762  			it.Struct, err = graphql.UnmarshalString(v)
  3763  			if err != nil {
  3764  				return it, err
  3765  			}
  3766  		case "chan":
  3767  			var err error
  3768  			it.Chan, err = graphql.UnmarshalString(v)
  3769  			if err != nil {
  3770  				return it, err
  3771  			}
  3772  		case "else":
  3773  			var err error
  3774  			it.Else, err = graphql.UnmarshalString(v)
  3775  			if err != nil {
  3776  				return it, err
  3777  			}
  3778  		case "goto":
  3779  			var err error
  3780  			it.Goto, err = graphql.UnmarshalString(v)
  3781  			if err != nil {
  3782  				return it, err
  3783  			}
  3784  		case "package":
  3785  			var err error
  3786  			it.Package, err = graphql.UnmarshalString(v)
  3787  			if err != nil {
  3788  				return it, err
  3789  			}
  3790  		case "switch":
  3791  			var err error
  3792  			it.Switch, err = graphql.UnmarshalString(v)
  3793  			if err != nil {
  3794  				return it, err
  3795  			}
  3796  		case "const":
  3797  			var err error
  3798  			it.Const, err = graphql.UnmarshalString(v)
  3799  			if err != nil {
  3800  				return it, err
  3801  			}
  3802  		case "fallthrough":
  3803  			var err error
  3804  			it.Fallthrough, err = graphql.UnmarshalString(v)
  3805  			if err != nil {
  3806  				return it, err
  3807  			}
  3808  		case "if":
  3809  			var err error
  3810  			it.If, err = graphql.UnmarshalString(v)
  3811  			if err != nil {
  3812  				return it, err
  3813  			}
  3814  		case "range":
  3815  			var err error
  3816  			it.Range, err = graphql.UnmarshalString(v)
  3817  			if err != nil {
  3818  				return it, err
  3819  			}
  3820  		case "type":
  3821  			var err error
  3822  			it.Type, err = graphql.UnmarshalString(v)
  3823  			if err != nil {
  3824  				return it, err
  3825  			}
  3826  		case "continue":
  3827  			var err error
  3828  			it.Continue, err = graphql.UnmarshalString(v)
  3829  			if err != nil {
  3830  				return it, err
  3831  			}
  3832  		case "for":
  3833  			var err error
  3834  			it.For, err = graphql.UnmarshalString(v)
  3835  			if err != nil {
  3836  				return it, err
  3837  			}
  3838  		case "import":
  3839  			var err error
  3840  			it.Import, err = graphql.UnmarshalString(v)
  3841  			if err != nil {
  3842  				return it, err
  3843  			}
  3844  		case "return":
  3845  			var err error
  3846  			it.Return, err = graphql.UnmarshalString(v)
  3847  			if err != nil {
  3848  				return it, err
  3849  			}
  3850  		case "var":
  3851  			var err error
  3852  			it.Var, err = graphql.UnmarshalString(v)
  3853  			if err != nil {
  3854  				return it, err
  3855  			}
  3856  		}
  3857  	}
  3858  
  3859  	return it, nil
  3860  }
  3861  
  3862  func UnmarshalOuterInput(v interface{}) (OuterInput, error) {
  3863  	var it OuterInput
  3864  	var asMap = v.(map[string]interface{})
  3865  
  3866  	for k, v := range asMap {
  3867  		switch k {
  3868  		case "inner":
  3869  			var err error
  3870  			it.Inner, err = UnmarshalInnerInput(v)
  3871  			if err != nil {
  3872  				return it, err
  3873  			}
  3874  		}
  3875  	}
  3876  
  3877  	return it, nil
  3878  }
  3879  
  3880  func UnmarshalRecursiveInputSlice(v interface{}) (RecursiveInputSlice, error) {
  3881  	var it RecursiveInputSlice
  3882  	var asMap = v.(map[string]interface{})
  3883  
  3884  	for k, v := range asMap {
  3885  		switch k {
  3886  		case "self":
  3887  			var err error
  3888  			var rawIf1 []interface{}
  3889  			if v != nil {
  3890  				if tmp1, ok := v.([]interface{}); ok {
  3891  					rawIf1 = tmp1
  3892  				} else {
  3893  					rawIf1 = []interface{}{v}
  3894  				}
  3895  			}
  3896  			it.Self = make([]RecursiveInputSlice, len(rawIf1))
  3897  			for idx1 := range rawIf1 {
  3898  				it.Self[idx1], err = UnmarshalRecursiveInputSlice(rawIf1[idx1])
  3899  			}
  3900  			if err != nil {
  3901  				return it, err
  3902  			}
  3903  		}
  3904  	}
  3905  
  3906  	return it, nil
  3907  }
  3908  
  3909  func (ec *executionContext) FieldMiddleware(ctx context.Context, obj interface{}, next graphql.Resolver) (ret interface{}) {
  3910  	defer func() {
  3911  		if r := recover(); r != nil {
  3912  			ec.Error(ctx, ec.Recover(ctx, r))
  3913  			ret = nil
  3914  		}
  3915  	}()
  3916  	res, err := ec.ResolverMiddleware(ctx, next)
  3917  	if err != nil {
  3918  		ec.Error(ctx, err)
  3919  		return nil
  3920  	}
  3921  	return res
  3922  }
  3923  
  3924  func (ec *executionContext) introspectSchema() *introspection.Schema {
  3925  	return introspection.WrapSchema(parsedSchema)
  3926  }
  3927  
  3928  func (ec *executionContext) introspectType(name string) *introspection.Type {
  3929  	return introspection.WrapTypeFromDef(parsedSchema, parsedSchema.Types[name])
  3930  }
  3931  
  3932  var parsedSchema = gqlparser.MustLoadSchema(
  3933  	&ast.Source{Name: "schema.graphql", Input: `type Query {
  3934      invalidIdentifier: InvalidIdentifier
  3935      collision: It
  3936      mapInput(input: Changes): Boolean
  3937      recursive(input: RecursiveInputSlice): Boolean
  3938      nestedInputs(input: [[OuterInput]] = [[{inner: {id: 1}}]]): Boolean
  3939      nestedOutputs: [[OuterObject]]
  3940      keywords(input: Keywords): Boolean!
  3941      shapes: [Shape]
  3942      errorBubble: Error
  3943      valid: String!
  3944      user(id: Int!): User!
  3945      nullableArg(arg: Int = 123): String
  3946  }
  3947  
  3948  type Subscription {
  3949      updated: String!
  3950      initPayload: String!
  3951  }
  3952  
  3953  type User {
  3954      id: Int!
  3955      friends: [User!]!
  3956  }
  3957  
  3958  type Error {
  3959      id: ID!
  3960      errorOnNonRequiredField: String
  3961      errorOnRequiredField: String!
  3962      nilOnRequiredField: String!
  3963  }
  3964  
  3965  type InvalidIdentifier {
  3966      id: Int!
  3967  }
  3968  
  3969  type It {
  3970      id: ID!
  3971  }
  3972  
  3973  input Changes {
  3974      a: Int
  3975      b: Int
  3976  }
  3977  
  3978  input RecursiveInputSlice {
  3979      self: [RecursiveInputSlice!]
  3980  }
  3981  
  3982  input InnerInput {
  3983      id:Int!
  3984  }
  3985  
  3986  input OuterInput {
  3987      inner: InnerInput!
  3988  }
  3989  
  3990  type OuterObject {
  3991      inner: InnerObject!
  3992  }
  3993  
  3994  type InnerObject {
  3995      id: Int!
  3996  }
  3997  
  3998  input Keywords {
  3999      break:       String!
  4000      default:     String!
  4001      func:        String!
  4002      interface:   String!
  4003      select:      String!
  4004      case:        String!
  4005      defer:       String!
  4006      go:          String!
  4007      map:         String!
  4008      struct:      String!
  4009      chan:        String!
  4010      else:        String!
  4011      goto:        String!
  4012      package:     String!
  4013      switch:      String!
  4014      const:       String!
  4015      fallthrough: String!
  4016      if:          String!
  4017      range:       String!
  4018      type:        String!
  4019      continue:    String!
  4020      for:         String!
  4021      import:      String!
  4022      return:      String!
  4023      var:         String!
  4024  }
  4025  
  4026  extend type Query {
  4027      keywordArgs(
  4028          break:       String!,
  4029          default:     String!,
  4030          func:        String!,
  4031          interface:   String!,
  4032          select:      String!,
  4033          case:        String!,
  4034          defer:       String!,
  4035          go:          String!,
  4036          map:         String!,
  4037          struct:      String!,
  4038          chan:        String!,
  4039          else:        String!,
  4040          goto:        String!,
  4041          package:     String!,
  4042          switch:      String!,
  4043          const:       String!,
  4044          fallthrough: String!,
  4045          if:          String!,
  4046          range:       String!,
  4047          type:        String!,
  4048          continue:    String!,
  4049          for:         String!,
  4050          import:      String!,
  4051          return:      String!,
  4052          var:         String!,
  4053      ): Boolean!
  4054  }
  4055  
  4056  interface Shape {
  4057      area: Float
  4058  }
  4059  type Circle implements Shape {
  4060      radius: Float
  4061      area: Float
  4062  }
  4063  type Rectangle implements Shape {
  4064      length: Float
  4065      width: Float
  4066      area: Float
  4067  }
  4068  union ShapeUnion = Circle | Rectangle
  4069  
  4070  type ForcedResolver {
  4071      field: Circle
  4072  }
  4073  
  4074  type EmbeddedPointer {
  4075      ID: String
  4076      Title: String
  4077  }
  4078  `},
  4079  )