Schema {
    sources: {
        -1: SourceFile {
            path: "built_in.graphql",
            source_text: include_str!("built_in.graphql"),
        },
        20: SourceFile {
            path: "0020_merge_identical_fields.graphql",
            source_text: "type Query {\n  pet: Dog\n}\n\ntype Dog {\n  nickname: String\n  name: String!\n}\n\nquery queryPupper {\n  pet {\n    ...mergeIdenticalFields\n    ...mergeIdenticalAliasesAndFields\n  }\n}\n\nfragment mergeIdenticalFields on Dog {\n  name\n  name\n}\n\nfragment mergeIdenticalAliasesAndFields on Dog {\n  otherName: name\n  otherName: name\n}\n",
        },
    },
    schema_definition: SchemaDefinition {
        description: None,
        directives: [],
        query: Some(
            ComponentName {
                origin: Definition,
                name: "Query",
            },
        ),
        mutation: None,
        subscription: None,
    },
    directive_definitions: {
        "skip": built_in_directive!("skip"),
        "include": built_in_directive!("include"),
        "deprecated": built_in_directive!("deprecated"),
        "specifiedBy": built_in_directive!("specifiedBy"),
    },
    types: {
        "__Schema": built_in_type!("__Schema"),
        "__Type": built_in_type!("__Type"),
        "__TypeKind": built_in_type!("__TypeKind"),
        "__Field": built_in_type!("__Field"),
        "__InputValue": built_in_type!("__InputValue"),
        "__EnumValue": built_in_type!("__EnumValue"),
        "__Directive": built_in_type!("__Directive"),
        "__DirectiveLocation": built_in_type!("__DirectiveLocation"),
        "Int": built_in_type!("Int"),
        "Float": built_in_type!("Float"),
        "String": built_in_type!("String"),
        "Boolean": built_in_type!("Boolean"),
        "ID": built_in_type!("ID"),
        "Query": Object(
            0..25 @20 ObjectType {
                description: None,
                name: "Query",
                implements_interfaces: {},
                directives: [],
                fields: {
                    "pet": Component {
                        origin: Definition,
                        node: 15..23 @20 FieldDefinition {
                            description: None,
                            name: "pet",
                            arguments: [],
                            ty: Named(
                                "Dog",
                            ),
                            directives: [],
                        },
                    },
                },
            },
        ),
        "Dog": Object(
            27..74 @20 ObjectType {
                description: None,
                name: "Dog",
                implements_interfaces: {},
                directives: [],
                fields: {
                    "nickname": Component {
                        origin: Definition,
                        node: 40..56 @20 FieldDefinition {
                            description: None,
                            name: "nickname",
                            arguments: [],
                            ty: Named(
                                "String",
                            ),
                            directives: [],
                        },
                    },
                    "name": Component {
                        origin: Definition,
                        node: 59..72 @20 FieldDefinition {
                            description: None,
                            name: "name",
                            arguments: [],
                            ty: NonNullNamed(
                                "String",
                            ),
                            directives: [],
                        },
                    },
                },
            },
        ),
    },
}
ExecutableDocument {
    sources: {
        -1: SourceFile {
            path: "built_in.graphql",
            source_text: include_str!("built_in.graphql"),
        },
        20: SourceFile {
            path: "0020_merge_identical_fields.graphql",
            source_text: "type Query {\n  pet: Dog\n}\n\ntype Dog {\n  nickname: String\n  name: String!\n}\n\nquery queryPupper {\n  pet {\n    ...mergeIdenticalFields\n    ...mergeIdenticalAliasesAndFields\n  }\n}\n\nfragment mergeIdenticalFields on Dog {\n  name\n  name\n}\n\nfragment mergeIdenticalAliasesAndFields on Dog {\n  otherName: name\n  otherName: name\n}\n",
        },
    },
    anonymous_operation: None,
    named_operations: {
        "queryPupper": 76..175 @20 Operation {
            operation_type: Query,
            name: Some(
                "queryPupper",
            ),
            variables: [],
            directives: [],
            selection_set: SelectionSet {
                ty: "Query",
                selections: [
                    Field(
                        98..173 @20 Field {
                            definition: 15..23 @20 FieldDefinition {
                                description: None,
                                name: "pet",
                                arguments: [],
                                ty: Named(
                                    "Dog",
                                ),
                                directives: [],
                            },
                            alias: None,
                            name: "pet",
                            arguments: [],
                            directives: [],
                            selection_set: SelectionSet {
                                ty: "Dog",
                                selections: [
                                    FragmentSpread(
                                        108..131 @20 FragmentSpread {
                                            fragment_name: "mergeIdenticalFields",
                                            directives: [],
                                        },
                                    ),
                                    FragmentSpread(
                                        136..169 @20 FragmentSpread {
                                            fragment_name: "mergeIdenticalAliasesAndFields",
                                            directives: [],
                                        },
                                    ),
                                ],
                            },
                        },
                    ),
                ],
            },
        },
    },
    fragments: {
        "mergeIdenticalFields": 177..231 @20 Fragment {
            name: "mergeIdenticalFields",
            directives: [],
            selection_set: SelectionSet {
                ty: "Dog",
                selections: [
                    Field(
                        218..222 @20 Field {
                            definition: 59..72 @20 FieldDefinition {
                                description: None,
                                name: "name",
                                arguments: [],
                                ty: NonNullNamed(
                                    "String",
                                ),
                                directives: [],
                            },
                            alias: None,
                            name: "name",
                            arguments: [],
                            directives: [],
                            selection_set: SelectionSet {
                                ty: "String",
                                selections: [],
                            },
                        },
                    ),
                    Field(
                        225..229 @20 Field {
                            definition: 59..72 @20 FieldDefinition {
                                description: None,
                                name: "name",
                                arguments: [],
                                ty: NonNullNamed(
                                    "String",
                                ),
                                directives: [],
                            },
                            alias: None,
                            name: "name",
                            arguments: [],
                            directives: [],
                            selection_set: SelectionSet {
                                ty: "String",
                                selections: [],
                            },
                        },
                    ),
                ],
            },
        },
        "mergeIdenticalAliasesAndFields": 233..319 @20 Fragment {
            name: "mergeIdenticalAliasesAndFields",
            directives: [],
            selection_set: SelectionSet {
                ty: "Dog",
                selections: [
                    Field(
                        284..299 @20 Field {
                            definition: 59..72 @20 FieldDefinition {
                                description: None,
                                name: "name",
                                arguments: [],
                                ty: NonNullNamed(
                                    "String",
                                ),
                                directives: [],
                            },
                            alias: Some(
                                "otherName",
                            ),
                            name: "name",
                            arguments: [],
                            directives: [],
                            selection_set: SelectionSet {
                                ty: "String",
                                selections: [],
                            },
                        },
                    ),
                    Field(
                        302..317 @20 Field {
                            definition: 59..72 @20 FieldDefinition {
                                description: None,
                                name: "name",
                                arguments: [],
                                ty: NonNullNamed(
                                    "String",
                                ),
                                directives: [],
                            },
                            alias: Some(
                                "otherName",
                            ),
                            name: "name",
                            arguments: [],
                            directives: [],
                            selection_set: SelectionSet {
                                ty: "String",
                                selections: [],
                            },
                        },
                    ),
                ],
            },
        },
    },
}
