diff --git a/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Exceptions/FieldSelectionMapSyntaxException.cs b/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Exceptions/FieldSelectionMapSyntaxException.cs new file mode 100644 index 00000000000..0dbd9bbc22d --- /dev/null +++ b/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Exceptions/FieldSelectionMapSyntaxException.cs @@ -0,0 +1,29 @@ +namespace HotChocolate.Fusion; + +[Serializable] +public sealed class FieldSelectionMapSyntaxException : Exception +{ + internal FieldSelectionMapSyntaxException( + FieldSelectionMapReader reader, + string message) + : base(message) + { + Position = reader.Position; + Line = reader.Line; + Column = reader.Column; + } + + internal FieldSelectionMapSyntaxException( + FieldSelectionMapReader reader, + string message, + params object[] args) + : this(reader, string.Format(message, args)) + { + } + + public int Position { get; } + + public int Line { get; } + + public int Column { get; } +} diff --git a/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Exceptions/SyntaxException.cs b/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Exceptions/SyntaxException.cs deleted file mode 100644 index 2340303c2d4..00000000000 --- a/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Exceptions/SyntaxException.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace HotChocolate.Fusion; - -[Serializable] -public sealed class SyntaxException : Exception -{ - internal SyntaxException(FieldSelectionMapReader reader, string message) : base(message) - { - Position = reader.Position; - Line = reader.Line; - Column = reader.Column; - } - - internal SyntaxException(FieldSelectionMapReader reader, string message, params object[] args) - : this(reader, string.Format(message, args)) - { - } - - public int Position { get; } - - public int Line { get; } - - public int Column { get; } -} diff --git a/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Parsers/FieldSelectionMapParser.cs b/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Parsers/FieldSelectionMapParser.cs index 58690ff85c7..949453b9417 100644 --- a/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Parsers/FieldSelectionMapParser.cs +++ b/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Parsers/FieldSelectionMapParser.cs @@ -109,7 +109,10 @@ private SelectedValueEntryNode ParseSelectedValueEntry() break; default: - throw new SyntaxException(_reader, UnexpectedToken, _reader.TokenKind); + throw new FieldSelectionMapSyntaxException( + _reader, + UnexpectedToken, + _reader.TokenKind); } var location = CreateLocation(in start); @@ -335,7 +338,7 @@ private TokenInfo Start() { if (++_parsedNodes > _options.MaxAllowedNodes) { - throw new SyntaxException( + throw new FieldSelectionMapSyntaxException( _reader, string.Format(MaxAllowedNodesExceeded, _options.MaxAllowedNodes)); } @@ -353,7 +356,11 @@ private void Expect(TokenKind tokenKind) { if (!_reader.Skip(tokenKind)) { - throw new SyntaxException(_reader, InvalidToken, tokenKind, _reader.TokenKind); + throw new FieldSelectionMapSyntaxException( + _reader, + InvalidToken, + tokenKind, + _reader.TokenKind); } } @@ -368,7 +375,11 @@ private string ExpectName() return name; } - throw new SyntaxException(_reader, InvalidToken, TokenKind.Name, _reader.TokenKind); + throw new FieldSelectionMapSyntaxException( + _reader, + InvalidToken, + TokenKind.Name, + _reader.TokenKind); } [MethodImpl(MethodImplOptions.AggressiveInlining)] diff --git a/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Readers/FieldSelectionMapReader.cs b/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Readers/FieldSelectionMapReader.cs index d4ba53d9917..07994844c4c 100644 --- a/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Readers/FieldSelectionMapReader.cs +++ b/src/HotChocolate/Fusion-vnext/src/Fusion.Language/Readers/FieldSelectionMapReader.cs @@ -78,7 +78,7 @@ public FieldSelectionMapReader( /// /// Returns a boolean indicating if the read was successful. /// - /// + /// /// The source text contains an invalid syntax token. /// public bool Read() @@ -100,7 +100,7 @@ public bool Read() if (_tokenCount > _maxAllowedTokens) { - throw new SyntaxException( + throw new FieldSelectionMapSyntaxException( this, string.Format(MaxAllowedTokensExceeded, _maxAllowedTokens)); } @@ -121,7 +121,7 @@ public bool Read() return true; } - throw new SyntaxException(this, UnexpectedCharacter, code); + throw new FieldSelectionMapSyntaxException(this, UnexpectedCharacter, code); } [MethodImpl(MethodImplOptions.AggressiveInlining)] diff --git a/src/HotChocolate/Fusion-vnext/test/Fusion.Language.Tests/FieldSelectionMapParserTests.cs b/src/HotChocolate/Fusion-vnext/test/Fusion.Language.Tests/FieldSelectionMapParserTests.cs index aab35646edc..8e24e6804ca 100644 --- a/src/HotChocolate/Fusion-vnext/test/Fusion.Language.Tests/FieldSelectionMapParserTests.cs +++ b/src/HotChocolate/Fusion-vnext/test/Fusion.Language.Tests/FieldSelectionMapParserTests.cs @@ -63,7 +63,7 @@ public void Parse_PathSegmentWithTypeNameNoNestedField_ThrowsSyntaxException() // assert Assert.Equal( "Expected a `Period`-token, but found a `EndOfFile`-token.", - Assert.Throws(Act).Message); + Assert.Throws(Act).Message); } [Fact] @@ -101,7 +101,7 @@ public void Parse_PathWithTypeNameNoPathSegment_ThrowsSyntaxException() // assert Assert.Equal( "Expected a `Period`-token, but found a `EndOfFile`-token.", - Assert.Throws(Act).Message); + Assert.Throws(Act).Message); } [Fact] @@ -143,7 +143,7 @@ public void Parse_SelectedListValueInvalidExamples_ThrowsSyntaxException(string // assert Assert.Equal( "Expected a `RightSquareBracket`-token, but found a `Name`-token.", - Assert.Throws(Act).Message); + Assert.Throws(Act).Message); } [Fact] @@ -268,6 +268,6 @@ static void Act() // assert Assert.Equal( "Source text contains more than 2 nodes. Parsing aborted.", - Assert.Throws(Act).Message); + Assert.Throws(Act).Message); } } diff --git a/src/HotChocolate/Fusion-vnext/test/Fusion.Language.Tests/FieldSelectionMapReaderTests.cs b/src/HotChocolate/Fusion-vnext/test/Fusion.Language.Tests/FieldSelectionMapReaderTests.cs index 08a2840d1b5..5620d0fbf05 100644 --- a/src/HotChocolate/Fusion-vnext/test/Fusion.Language.Tests/FieldSelectionMapReaderTests.cs +++ b/src/HotChocolate/Fusion-vnext/test/Fusion.Language.Tests/FieldSelectionMapReaderTests.cs @@ -188,7 +188,7 @@ static void Act() // assert Assert.Equal( "Source text contains more than 2 tokens. Parsing aborted.", - Assert.Throws(Act).Message); + Assert.Throws(Act).Message); } [Fact] @@ -205,6 +205,6 @@ static void Act() // assert Assert.Equal( "Unexpected character `*`.", - Assert.Throws(Act).Message); + Assert.Throws(Act).Message); } }