- 15 Feb, 2016 1 commit
-
-
Jon Skeet authored
This detects: - An end-group tag with the wrong field number (doesn't match the start-group field) - An end-group tag with no preceding start-group tag Fixes issue #688.
-
- 09 Feb, 2016 1 commit
-
-
Jan Tattermusch authored
-
- 08 Feb, 2016 1 commit
-
-
Jon Skeet authored
Explicitly don't add any dependencies for "old" platforms, to avoid unnecessary dependencies in those cases. Fixes issue #1203.
-
- 04 Feb, 2016 4 commits
-
-
Jon Skeet authored
-
Jon Skeet authored
(Generated code changes in next commit.)
-
Jon Skeet authored
-
Jon Skeet authored
Recently, descriptor.proto gained a GeneratedCodeInfo message, which means the generated code conflicts with our type. Unfortunately this affects codegen as well, although this is a part of the public API which is very unlikely to affect hand-written code. Generated code changes in next commit.
-
- 20 Jan, 2016 1 commit
-
-
Jon Skeet authored
The usage of ICustomDiagnosticMessage here is non-essential - ToDiagnosticString doesn't actually get called by ToString() in this case, due to JsonFormatter code. It was intended to make it clearer that it *did* have a custom format... but then arguably I should do the same for Value, Struct, Any etc. Moving some of the code out of JsonFormatter and into Duration/Timestamp/FieldMask likewise feels somewhat nice, somewhat nasty... basically there are JSON-specific bits of formatting, but also domain-specific bits of computation. <sigh> Thoughts welcome.
-
- 15 Jan, 2016 10 commits
-
-
Jon Skeet authored
"valueField": null is parsed appropriately, i.e. that it remembers that the field is set.
-
Jon Skeet authored
-
Jon Skeet authored
-
Jon Skeet authored
-
Jon Skeet authored
-
Jon Skeet authored
-
Jon Skeet authored
-
Jon Skeet authored
-
Jon Skeet authored
-
Jon Skeet authored
Previously we were incorrectly packing wrapper types. This also refactors FieldCodec a bit as well, using more C# 6-ness.
-
- 13 Jan, 2016 2 commits
- 11 Jan, 2016 1 commit
-
-
Jon Skeet authored
On deserialization, missing values for message types are replaced with a "default" message.
-
- 06 Jan, 2016 2 commits
-
-
Jon Skeet authored
This involves quoting timestamp/duration/field-mask values, even when they're not in fields. It's better for consistency. Fixes issue #1097.
-
Jon Skeet authored
- Tighten up on Infinity/NaN handling in terms of whitespace handling (and test casing) - Validate that values are genuinely integers when they've been parsed from a JSON number (ignoring the fact that 1.0000000000000000001 == 1 as a double...) - Allow exponents and decimal points in string representations
-
- 05 Jan, 2016 1 commit
-
-
Jon Skeet authored
(The method was last used a very long time ago, if ever.)
-
- 17 Dec, 2015 1 commit
-
-
Jan Tattermusch authored
-
- 16 Dec, 2015 1 commit
-
-
Jan Tattermusch authored
-
- 15 Dec, 2015 2 commits
-
-
Jon Skeet authored
-
Jon Skeet authored
This addresses issue #1008, by creating a JsonFormatter which is private and only different to JsonFormatter.Default in terms of reference equality. Other plausible designs: - The same, but expose the diagnostic-only formatter - Add something to settings to say "I don't have a type registry at all" - Change the behaviour of JsonFormatter.Default (bad idea IMO, as we really *don't* want the result of this used as regular JSON to be parsed) Note that just trying to find a separate fix to issue #933 and using that to override Any.ToString() differently wouldn't work for messages that *contain* an Any. Generated code changes follow in the next commit.
-
- 02 Dec, 2015 2 commits
-
-
Jon Skeet authored
This required a rework of the tokenizer to allow for a "replaying" tokenizer, basically in case the @type value comes after the data itself. This rework is nice in some ways (all the pushback and object depth logic in one place) but is a little fragile in terms of token push-back when using the replay tokenizer. It'll be fine for the scenario we need it for, but we should be careful...
-
Jon Skeet authored
-
- 22 Nov, 2015 2 commits
-
-
Jon Skeet authored
Generated code changes for previous commit (basically InternalBuildGeneratedFileFrom => FromGeneratedCode)
-
Jon Skeet authored
There are corner cases where MessageDescriptor.{ClrType,Parser} will return null, and these are now documented. However, normally they *should* be implemented, even for descriptors of for dynamic messages. Ditto FieldDescriptor.Accessor. We'll still need a fair amount of work to implement dynamic messages, but this change means that the public API will be remain intact. Additionally, this change starts making use of C# 6 features in the files that it touches. This is far from exhaustive, and later PRs will have more. Generated code changes coming in the next commit.
-
- 21 Nov, 2015 1 commit
-
-
Jon Skeet authored
Biting off just this bit first as I don't need the changes from a previous PR for this part.
-
- 19 Nov, 2015 3 commits
- 09 Nov, 2015 1 commit
-
-
Jon Skeet authored
-
- 06 Nov, 2015 1 commit
-
-
Jon Skeet authored
-
- 05 Nov, 2015 2 commits
-
-
Jon Skeet authored
Added a TODO around a possible change to the tokenizer API, changing PushBack(token) into just Rewind() or something similar.
-
Jon Skeet authored
This is only thrown directly by JsonTokenizer, but surfaces from JsonParser as well. I've added doc comments to hopefully make everything clear. The exception is actually thrown by the reader within JsonTokenizer, in anticipation of keeping track of the location within the document, but that change is not within this PR.
-