Fixes #64159 - JsonSerializerContext source generation fails with keyword identifiers...
authorSteve Dunn <steve@dunnhq.com>
Mon, 20 Jun 2022 07:38:23 +0000 (08:38 +0100)
committerGitHub <noreply@github.com>
Mon, 20 Jun 2022 07:38:23 +0000 (09:38 +0200)
commit12c1ead8736c9e3738e7742392c6a806aa5607c6
treef2051351247842e9ff1b7a8c9b6a74201d3998e0
parentf00c8be37bf4573e36c2e897208bee3b81eef518
Fixes #64159 - JsonSerializerContext source generation fails with keyword identifiers (#66876)

* Fixes #64159 - initial implementation

* Tidy up, and add test for ignored reserved-keyword-named property

* PR feedback - use same approach as logging generator

* PR feedback

* Update src/libraries/System.Text.Json/gen/JsonSourceGenerator.Parser.cs

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
* PR feedback - rename ExactNameSpecifiedInSourceCode

* PR feedback - use extracted (and renamed) local variable

* Remove commented code

* Added `IsVerbatimName` as extension method

* Support fields with verbatim names (@)

* Use alternative method for checking for verbatim names

* Uses `SyntaxFacts` to determine if escaping is needed

* Remove extension method

* Modified source generator test to include a verbatim field

* Minor typo

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
src/libraries/System.Text.Json/gen/JsonSourceGenerator.Emitter.cs
src/libraries/System.Text.Json/gen/JsonSourceGenerator.Parser.cs
src/libraries/System.Text.Json/gen/PropertyGenerationSpec.cs
src/libraries/System.Text.Json/gen/Reflection/FieldInfoWrapper.cs
src/libraries/System.Text.Json/gen/Reflection/PropertyInfoWrapper.cs
src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/JsonSerializerContextTests.cs
src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Unit.Tests/JsonSourceGeneratorTests.cs