From 10a2526c3aa1f8e3ed476f7c0fe5926198f42768 Mon Sep 17 00:00:00 2001 From: Bill Avery Date: Fri, 22 May 2020 13:08:44 -0700 Subject: [PATCH] Sync to latest PEGTL commit and fix breaks --- PEGTL | 2 +- include/graphqlservice/GraphQLService.h | 2 +- src/GraphQLService.cpp | 44 ++++++------- src/GraphQLTree.cpp | 6 +- src/SchemaGenerator.cpp | 20 +++--- src/Validation.cpp | 82 ++++++++++++------------- test/PegtlTests.cpp | 2 +- 7 files changed, 79 insertions(+), 79 deletions(-) diff --git a/PEGTL b/PEGTL index 83b6cdc7..70971f44 160000 --- a/PEGTL +++ b/PEGTL @@ -1 +1 @@ -Subproject commit 83b6cdc717b68a3714e6c76e13dbc4a571b491c1 +Subproject commit 70971f441d7611ba3905b5c0d5c8bf4338602ef2 diff --git a/include/graphqlservice/GraphQLService.h b/include/graphqlservice/GraphQLService.h index 8eebd4cd..e8fcb673 100644 --- a/include/graphqlservice/GraphQLService.h +++ b/include/graphqlservice/GraphQLService.h @@ -45,7 +45,7 @@ GRAPHQLSERVICE_EXPORT void addErrorMessage(std::string&& message, response::Valu struct schema_location { size_t line = 0; - size_t byte_in_line = 0; + size_t column = 1; }; GRAPHQLSERVICE_EXPORT void addErrorLocation(const schema_location& location, response::Value& error); diff --git a/src/GraphQLService.cpp b/src/GraphQLService.cpp index dd0120e0..b1872041 100644 --- a/src/GraphQLService.cpp +++ b/src/GraphQLService.cpp @@ -29,7 +29,7 @@ void addErrorLocation(const schema_location& location, response::Value& error) errorLocation.reserve(2); errorLocation.emplace_back(std::string { strLine }, response::Value(static_cast(location.line))); - errorLocation.emplace_back(std::string { strColumn }, response::Value(static_cast(location.byte_in_line + 1))); + errorLocation.emplace_back(std::string { strColumn }, response::Value(static_cast(location.column))); response::Value errorLocations(response::Type::List); @@ -254,7 +254,7 @@ void ValueVisitor::visitVariable(const peg::ast_node& variable) error << "Unknown variable name: " << name; - throw schema_exception { { schema_error{ error.str(), { position.line, position.byte_in_line } } } }; + throw schema_exception { { schema_error{ error.str(), { position.line, position.column } } } }; } _value = response::Value(itr->second); @@ -510,7 +510,7 @@ schema_location ResolverParams::getLocation() const { auto position = field.begin(); - return { position.line, position.byte_in_line }; + return { position.line, position.column }; } uint8_t Base64::verifyFromBase64(char ch) @@ -737,7 +737,7 @@ std::future ModifiedResult::convert(FieldRes error << "Field may not have sub-fields name: " << params.fieldName; - throw schema_exception { { schema_error{ error.str(), { position.line, position.byte_in_line }, { params.errorPath } } } }; + throw schema_exception { { schema_error{ error.str(), { position.line, position.column }, { params.errorPath } } } }; } return resolve(std::move(result), std::move(params), @@ -758,7 +758,7 @@ std::future ModifiedResult::convert(FieldR error << "Field may not have sub-fields name: " << params.fieldName; - throw schema_exception { { schema_error{ error.str(), { position.line, position.byte_in_line }, { params.errorPath } } } }; + throw schema_exception { { schema_error{ error.str(), { position.line, position.column }, { params.errorPath } } } }; } return resolve(std::move(result), std::move(params), @@ -779,7 +779,7 @@ std::future ModifiedResult::convert(Field error << "Field may not have sub-fields name: " << params.fieldName; - throw schema_exception { { schema_error{ error.str(), { position.line, position.byte_in_line }, { params.errorPath } } } }; + throw schema_exception { { schema_error{ error.str(), { position.line, position.column }, { params.errorPath } } } }; } return resolve(std::move(result), std::move(params), @@ -800,7 +800,7 @@ std::future ModifiedResult::convert(Fiel error << "Field may not have sub-fields name: " << params.fieldName; - throw schema_exception { { schema_error{ error.str(), { position.line, position.byte_in_line }, { params.errorPath } } } }; + throw schema_exception { { schema_error{ error.str(), { position.line, position.column }, { params.errorPath } } } }; } return resolve(std::move(result), std::move(params), @@ -821,7 +821,7 @@ std::future ModifiedResult::convert(FieldResul error << "Field may not have sub-fields name: " << params.fieldName; - throw schema_exception { { schema_error{ error.str(), { position.line, position.byte_in_line }, { params.errorPath } } } }; + throw schema_exception { { schema_error{ error.str(), { position.line, position.column }, { params.errorPath } } } }; } return resolve(std::move(result), std::move(params), @@ -842,7 +842,7 @@ std::future ModifiedResult::convert(FieldResu error << "Field may not have sub-fields name: " << params.fieldName; - throw schema_exception { { schema_error{ error.str(), { position.line, position.byte_in_line }, { params.errorPath } } } }; + throw schema_exception { { schema_error{ error.str(), { position.line, position.column }, { params.errorPath } } } }; } return resolve(std::move(result), std::move(params), @@ -863,7 +863,7 @@ std::future ModifiedResult::convert(FieldResultsecond.getType()) == 0); @@ -1676,7 +1676,7 @@ void SubscriptionDefinitionVisitor::visitField(const peg::ast_node& field) error << "Extra subscription root field name: " << name; - throw schema_exception { { schema_error{ error.str(), { position.line, position.byte_in_line } } } }; + throw schema_exception { { schema_error{ error.str(), { position.line, position.column } } } }; } DirectiveVisitor directiveVisitor(_params.variables); @@ -1723,7 +1723,7 @@ void SubscriptionDefinitionVisitor::visitFragmentSpread(const peg::ast_node& fra error << "Unknown fragment name: " << name; - throw schema_exception { { schema_error{ error.str(), { position.line, position.byte_in_line } } } }; + throw schema_exception { { schema_error{ error.str(), { position.line, position.column } } } }; } bool skip = !_subscriptionObject->matchesType(itr->second.getType()); @@ -1852,7 +1852,7 @@ std::pair Request::findOperationDefinition(co message << "Duplicate named operations name: " << name; } - errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + errors.push_back({ message.str(), { position.line, position.column } }); } hasAnonymous = hasAnonymous || name.empty(); @@ -1873,7 +1873,7 @@ std::pair Request::findOperationDefinition(co message << "Unexpected named operation name: " << name; } - errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + errors.push_back({ message.str(), { position.line, position.column } }); } auto itr = _operations.find(operationType); @@ -1889,7 +1889,7 @@ std::pair Request::findOperationDefinition(co message << " name: " << name; } - errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + errors.push_back({ message.str(), { position.line, position.column } }); } if (!errors.empty()) @@ -1955,7 +1955,7 @@ std::future Request::resolveValidated(std::launch launch, const message << "Unexpected type definition"; - throw schema_exception { { schema_error{ message.str(), { position.line, position.byte_in_line } } } }; + throw schema_exception { { schema_error{ message.str(), { position.line, position.column } } } }; } } @@ -1995,7 +1995,7 @@ std::future Request::resolveValidated(std::launch launch, const message << " name: " << operationName; } - throw schema_exception { { schema_error{ message.str(), { position.line, position.byte_in_line } } } }; + throw schema_exception { { schema_error{ message.str(), { position.line, position.column } } } }; } // http://spec.graphql.org/June2018/#sec-Normal-and-Serial-Execution @@ -2069,7 +2069,7 @@ SubscriptionKey Request::subscribe(SubscriptionParams&& params, SubscriptionCall message << " name: " << params.operationName; } - throw schema_exception { { schema_error{ message.str(), { position.line, position.byte_in_line } } } }; + throw schema_exception { { schema_error{ message.str(), { position.line, position.column } } } }; } auto itr = _operations.find(std::string { strSubscription }); diff --git a/src/GraphQLTree.cpp b/src/GraphQLTree.cpp index 0de71152..74a43259 100644 --- a/src/GraphQLTree.cpp +++ b/src/GraphQLTree.cpp @@ -88,7 +88,7 @@ struct ast_selector } } - throw parse_error("invalid escaped unicode code point", { n->begin(), n->end() }); + throw parse_error("invalid escaped unicode code point", n->begin()); } }; @@ -141,7 +141,7 @@ struct ast_selector } } - throw parse_error("invalid escaped character sequence", { n->begin(), n->end() }); + throw parse_error("invalid escaped character sequence", n->begin()); } }; @@ -574,7 +574,7 @@ struct ast_control static const std::string error_message; template - static void raise(const Input& in, State&&...) + [[noreturn]] static void raise(const Input& in, State&&...) { throw parse_error(error_message, in); } diff --git a/src/SchemaGenerator.cpp b/src/SchemaGenerator.cpp index 9c245bc2..1fd278f5 100644 --- a/src/SchemaGenerator.cpp +++ b/src/SchemaGenerator.cpp @@ -383,7 +383,7 @@ void Generator::validateSchema() if (itrPosition != _typePositions.cend()) { error << " line: " << itrPosition->second.line - << " column: " << (itrPosition->second.byte_in_line + 1); + << " column: " << itrPosition->second.column; } throw std::runtime_error(error.str()); @@ -513,7 +513,7 @@ void Generator::validateSchema() if (itrPosition != _typePositions.cend()) { error << " line: " << itrPosition->second.line - << " column: " << (itrPosition->second.byte_in_line + 1); + << " column: " << itrPosition->second.column; } throw std::runtime_error(error.str()); @@ -558,7 +558,7 @@ void Generator::fixupOutputFieldList(OutputFieldList& fields, const std::optiona if (entry.position) { error << " line: " << entry.position->line - << " column: " << (entry.position->byte_in_line + 1); + << " column: " << entry.position->column; } throw std::runtime_error(error.str()); @@ -595,7 +595,7 @@ void Generator::fixupOutputFieldList(OutputFieldList& fields, const std::optiona if (entry.position) { error << " line: " << entry.position->line - << " column: " << (entry.position->byte_in_line + 1); + << " column: " << entry.position->column; } throw std::runtime_error(error.str()); @@ -626,7 +626,7 @@ void Generator::fixupInputFieldList(InputFieldList& fields) if (entry.position) { error << " line: " << entry.position->line - << " column: " << (entry.position->byte_in_line + 1); + << " column: " << entry.position->column; } throw std::runtime_error(error.str()); @@ -655,7 +655,7 @@ void Generator::fixupInputFieldList(InputFieldList& fields) if (entry.position) { error << " line: " << entry.position->line - << " column: " << (entry.position->byte_in_line + 1); + << " column: " << entry.position->column; } throw std::runtime_error(error.str()); @@ -1298,7 +1298,7 @@ InputFieldList Generator::getInputFields(const std::vectorchildren.back()->string_view(); - defaultValueLocation = { position.line, position.byte_in_line }; + defaultValueLocation = { position.line, position.column }; } else if (child->is_type()) { @@ -1318,7 +1318,7 @@ InputFieldList Generator::getInputFields(const std::vector(std::move(value)); - _argumentValue.position = { position.line, position.byte_in_line }; + _argumentValue.position = { position.line, position.column }; } void ValidateArgumentValueVisitor::visitIntValue(const peg::ast_node& intValue) @@ -146,7 +146,7 @@ void ValidateArgumentValueVisitor::visitIntValue(const peg::ast_node& intValue) auto position = intValue.begin(); _argumentValue.value = std::make_unique(value); - _argumentValue.position = { position.line, position.byte_in_line }; + _argumentValue.position = { position.line, position.column }; } void ValidateArgumentValueVisitor::visitFloatValue(const peg::ast_node& floatValue) @@ -155,7 +155,7 @@ void ValidateArgumentValueVisitor::visitFloatValue(const peg::ast_node& floatVal auto position = floatValue.begin(); _argumentValue.value = std::make_unique(value); - _argumentValue.position = { position.line, position.byte_in_line }; + _argumentValue.position = { position.line, position.column }; } void ValidateArgumentValueVisitor::visitStringValue(const peg::ast_node& stringValue) @@ -164,7 +164,7 @@ void ValidateArgumentValueVisitor::visitStringValue(const peg::ast_node& stringV auto position = stringValue.begin(); _argumentValue.value = std::make_unique(std::move(value)); - _argumentValue.position = { position.line, position.byte_in_line }; + _argumentValue.position = { position.line, position.column }; } void ValidateArgumentValueVisitor::visitBooleanValue(const peg::ast_node& booleanValue) @@ -173,7 +173,7 @@ void ValidateArgumentValueVisitor::visitBooleanValue(const peg::ast_node& boolea auto position = booleanValue.begin(); _argumentValue.value = std::make_unique(value); - _argumentValue.position = { position.line, position.byte_in_line }; + _argumentValue.position = { position.line, position.column }; } void ValidateArgumentValueVisitor::visitNullValue(const peg::ast_node& nullValue) @@ -181,7 +181,7 @@ void ValidateArgumentValueVisitor::visitNullValue(const peg::ast_node& nullValue auto position = nullValue.begin(); _argumentValue.value.reset(); - _argumentValue.position = { position.line, position.byte_in_line }; + _argumentValue.position = { position.line, position.column }; } void ValidateArgumentValueVisitor::visitEnumValue(const peg::ast_node& enumValue) @@ -190,7 +190,7 @@ void ValidateArgumentValueVisitor::visitEnumValue(const peg::ast_node& enumValue auto position = enumValue.begin(); _argumentValue.value = std::make_unique(std::move(value)); - _argumentValue.position = { position.line, position.byte_in_line }; + _argumentValue.position = { position.line, position.column }; } void ValidateArgumentValueVisitor::visitListValue(const peg::ast_node& listValue) @@ -209,7 +209,7 @@ void ValidateArgumentValueVisitor::visitListValue(const peg::ast_node& listValue } _argumentValue.value = std::make_unique(std::move(value)); - _argumentValue.position = { position.line, position.byte_in_line }; + _argumentValue.position = { position.line, position.column }; } void ValidateArgumentValueVisitor::visitObjectValue(const peg::ast_node& objectValue) @@ -229,7 +229,7 @@ void ValidateArgumentValueVisitor::visitObjectValue(const peg::ast_node& objectV message << "Conflicting input field name: " << name; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); continue; } @@ -241,7 +241,7 @@ void ValidateArgumentValueVisitor::visitObjectValue(const peg::ast_node& objectV } _argumentValue.value = std::make_unique(std::move(value)); - _argumentValue.position = { position.line, position.byte_in_line }; + _argumentValue.position = { position.line, position.column }; } ValidateField::ValidateField(std::string&& returnType, std::optional&& objectType, const std::string& fieldName, ValidateFieldArguments&& arguments) @@ -677,7 +677,7 @@ void ValidateExecutableVisitor::visit(const peg::ast_node& root) error << "Duplicate fragment name: " << inserted.first->first; - _errors.push_back({ error.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ error.str(), { position.line, position.column } }); } }); @@ -703,7 +703,7 @@ void ValidateExecutableVisitor::visit(const peg::ast_node& root) error << "Duplicate operation name: " << inserted.first->first; - _errors.push_back({ error.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ error.str(), { position.line, position.column } }); } }); @@ -721,7 +721,7 @@ void ValidateExecutableVisitor::visit(const peg::ast_node& root) // http://spec.graphql.org/June2018/#sec-Lone-Anonymous-Operation auto position = itr->second.begin(); - _errors.push_back({ "Anonymous operation not alone", { position.line, position.byte_in_line } }); + _errors.push_back({ "Anonymous operation not alone", { position.line, position.column } }); } } @@ -741,7 +741,7 @@ void ValidateExecutableVisitor::visit(const peg::ast_node& root) // http://spec.graphql.org/June2018/#sec-Executable-Definitions auto position = child->begin(); - _errors.push_back({ "Unexpected type definition", { position.line, position.byte_in_line } }); + _errors.push_back({ "Unexpected type definition", { position.line, position.column } }); } } @@ -765,7 +765,7 @@ void ValidateExecutableVisitor::visit(const peg::ast_node& root) message << "Unused fragment definition name: " << fragmentDefinition.first; - return schema_error{ message.str(), { position.line, position.byte_in_line } }; + return schema_error{ message.str(), { position.line, position.column } }; }); } } @@ -805,7 +805,7 @@ void ValidateExecutableVisitor::visitFragmentDefinition(const peg::ast_node& fra : "Scalar target type on fragment definition: ") << name << " name: " << innerType; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); return; } @@ -867,7 +867,7 @@ void ValidateExecutableVisitor::visitOperationDefinition(const peg::ast_node& op message << " name: " << variableName; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); return; } } @@ -894,7 +894,7 @@ void ValidateExecutableVisitor::visitOperationDefinition(const peg::ast_node& op message << " name: " << variableName; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); return; } @@ -923,7 +923,7 @@ void ValidateExecutableVisitor::visitOperationDefinition(const peg::ast_node& op message << " name: " << variableName; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); return; } @@ -962,7 +962,7 @@ void ValidateExecutableVisitor::visitOperationDefinition(const peg::ast_node& op error << "Unsupported operation type: " << operationType; - _errors.push_back({ error.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ error.str(), { position.line, position.column } }); return; } @@ -987,7 +987,7 @@ void ValidateExecutableVisitor::visitOperationDefinition(const peg::ast_node& op error << " name: " << operationName; } - _errors.push_back({ error.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ error.str(), { position.line, position.column } }); } _scopedType.clear();; @@ -1004,7 +1004,7 @@ void ValidateExecutableVisitor::visitOperationDefinition(const peg::ast_node& op error << "Unused variable name: " << variable.first; - _errors.push_back({ error.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ error.str(), { position.line, position.column } }); } } @@ -2036,7 +2036,7 @@ void ValidateExecutableVisitor::visitField(const peg::ast_node& field) message << "Field on unknown type: " << _scopedType << " name: " << name; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); return; } @@ -2053,7 +2053,7 @@ void ValidateExecutableVisitor::visitField(const peg::ast_node& field) message << "Field on scalar type: " << _scopedType << " name: " << name; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); return; } @@ -2079,7 +2079,7 @@ void ValidateExecutableVisitor::visitField(const peg::ast_node& field) message << "Field on union type: " << _scopedType << " name: " << name; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); return; } @@ -2102,7 +2102,7 @@ void ValidateExecutableVisitor::visitField(const peg::ast_node& field) message << "Undefined field type: " << _scopedType << " name: " << name; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); return; } @@ -2140,7 +2140,7 @@ void ValidateExecutableVisitor::visitField(const peg::ast_node& field) << " field: " << name << " name: " << argumentName; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); continue; } @@ -2148,7 +2148,7 @@ void ValidateExecutableVisitor::visitField(const peg::ast_node& field) visitor.visit(*argument->children.back()); validateArguments[argumentName] = visitor.getArgumentValue(); - argumentLocations[argumentName] = { position.line, position.byte_in_line }; + argumentLocations[argumentName] = { position.line, position.column }; argumentNames.push(std::move(argumentName)); } }); @@ -2175,7 +2175,7 @@ void ValidateExecutableVisitor::visitField(const peg::ast_node& field) message << "Conflicting field type: " << _scopedType << " name: " << name; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); } } @@ -2250,7 +2250,7 @@ void ValidateExecutableVisitor::visitField(const peg::ast_node& field) << " field: " << name << " name: " << argument.first; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); } } } @@ -2299,7 +2299,7 @@ void ValidateExecutableVisitor::visitField(const peg::ast_node& field) message << "Missing fields on non-scalar type: " << innerType; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); return; } } @@ -2326,7 +2326,7 @@ void ValidateExecutableVisitor::visitFragmentSpread(const peg::ast_node& fragmen message << "Undefined fragment spread name: " << name; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); return; } @@ -2340,7 +2340,7 @@ void ValidateExecutableVisitor::visitFragmentSpread(const peg::ast_node& fragmen message << "Cyclic fragment spread name: " << name; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); } return; @@ -2359,7 +2359,7 @@ void ValidateExecutableVisitor::visitFragmentSpread(const peg::ast_node& fragmen message << "Incompatible fragment spread target type: " << innerType << " name: " << name; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); return; } @@ -2393,7 +2393,7 @@ void ValidateExecutableVisitor::visitInlineFragment(const peg::ast_node& inlineF auto position = child.begin(); innerType = child.children.front()->string(); - typeConditionLocation = { position.line, position.byte_in_line }; + typeConditionLocation = { position.line, position.column }; }); if (innerType.empty()) @@ -2466,7 +2466,7 @@ void ValidateExecutableVisitor::visitDirectives(introspection::DirectiveLocation message << "Conflicting directive name: " << directiveName; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); continue; } @@ -2480,7 +2480,7 @@ void ValidateExecutableVisitor::visitDirectives(introspection::DirectiveLocation message << "Undefined directive name: " << directiveName; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); continue; } @@ -2526,7 +2526,7 @@ void ValidateExecutableVisitor::visitDirectives(introspection::DirectiveLocation break; } - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); continue; } @@ -2550,7 +2550,7 @@ void ValidateExecutableVisitor::visitDirectives(introspection::DirectiveLocation message << "Conflicting argument directive: " << directiveName << " name: " << argumentName; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); continue; } @@ -2558,7 +2558,7 @@ void ValidateExecutableVisitor::visitDirectives(introspection::DirectiveLocation visitor.visit(*argument->children.back()); validateArguments[argumentName] = visitor.getArgumentValue(); - argumentLocations[argumentName] = { position.line, position.byte_in_line }; + argumentLocations[argumentName] = { position.line, position.column }; argumentNames.push(std::move(argumentName)); } @@ -2626,7 +2626,7 @@ void ValidateExecutableVisitor::visitDirectives(introspection::DirectiveLocation "Required non-null argument directive: ") << directiveName << " name: " << argument.first; - _errors.push_back({ message.str(), { position.line, position.byte_in_line } }); + _errors.push_back({ message.str(), { position.line, position.column } }); } } }); diff --git a/test/PegtlTests.cpp b/test/PegtlTests.cpp index b4190c98..000f64ba 100644 --- a/test/PegtlTests.cpp +++ b/test/PegtlTests.cpp @@ -5,7 +5,7 @@ #include "graphqlservice/GraphQLGrammar.h" -#include +#include using namespace graphql; using namespace graphql::peg;