Jon Skeet
71e8dca083
Refactoring of FieldDescriptor
...
This makes no externally visible behavioral changes. Internally and non-behaviorally:
- We use a field (compiler-generated) to store the JsonName to avoid recomputing it repeatedly
- The documentation for JsonName is updated to reflect the meaning better
- Readonly autoprops and expression-bodied properties used where possible
2016-03-30 09:42:37 +01:00
alien
6f8dd2115b
Code review fixes
2016-03-29 20:56:32 +03:00
alien
0d32ab37fa
csharp: add support for the json_name option
...
Conflicts:
csharp/src/Google.Protobuf/JsonFormatter.cs
2016-03-18 22:59:50 +03:00
avgweb
ad2d775e1b
Replace StringBuilder with TextWriter in JsonFormatter
2016-03-06 17:50:02 -08:00
Jon Skeet
f222a9a5e6
Fix copy/paste typo in CodedInputStreamTest
2016-03-01 07:30:40 +00:00
Jon Skeet
c0cf71bec9
Implement IDisposable for CodedInputStream and CodedOutputStream
...
This fixes issue #679 and issue #1282 .
(The .gitignore change is just around ncrunch; I can put it in a separate PR if you really want.)
2016-02-29 11:51:56 +00:00
Jon Skeet
42371463de
Require VS2015 in the solution file
2016-02-22 13:04:01 +00:00
Jan Tattermusch
c003abb40d
Merge pull request #1240 from jskeet/validate_group
...
Validate that end-group tags match their corresponding start-group tags
2016-02-18 14:38:06 -08:00
Jon Skeet
abc09f795e
Merge pull request #1239 from jskeet/call_generate_protos
...
Generate C# code whenever descriptor.proto changes
2016-02-18 06:45:51 +00:00
Jon Skeet
0262e04dbb
Add more tests around merging wrappers
...
This was in an attempt to fix the wrapper handling corner case, but it's really fiddly.
2016-02-15 14:17:02 +00:00
Jon Skeet
9bdc848832
Validate that end-group tags match their corresponding start-group tags
...
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 .
2016-02-15 11:58:01 +00:00
Jon Skeet
957e877d52
Generate C# code whenever descriptor.proto changes
...
This is a start to fixing issue #1212 . It won't help for test protos,
conformance etc, but it will definitely be better than nothing, and
would have highlighted a change in descriptor.proto which broken C#
earlier.
2016-02-15 10:33:13 +00:00
Jan Tattermusch
2d3f79f7d6
Merge pull request #1218 from jskeet/nuspec-dependencies
...
nuspec dependency fixes
2016-02-11 10:38:35 -08:00
Jan Tattermusch
95c4100230
Add a link
2016-02-10 08:16:45 -08:00
Jan Tattermusch
d40e3a1623
Use checked-in key to build ReleaseSigned
2016-02-09 15:59:05 -08:00
Jan Tattermusch
82f210cbac
add private key for strong name assemblies
2016-02-09 15:53:16 -08:00
Jon Skeet
f1c5754f0f
nuspec dependency fixes
...
Explicitly don't add any dependencies for "old" platforms, to avoid unnecessary
dependencies in those cases.
Fixes issue #1203 .
2016-02-08 11:25:07 +00:00
Jon Skeet
045b528d4a
Generated code changes from previous commit
2016-02-04 15:02:59 +00:00
Jon Skeet
7762f163a4
Rename Preconditions to ProtoPreconditions
...
(Generated code changes in next commit.)
2016-02-04 14:50:43 +00:00
Jon Skeet
b6159965ec
Generated code for GeneratedCodeInfo change
2016-02-04 07:08:55 +00:00
Jon Skeet
a3ea9d1203
Rename GeneratedCodeInfo to GeneratedClrTypeInfo
...
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.
2016-02-04 07:05:49 +00:00
Jon Skeet
0809de8e9f
Clarify readme
2016-02-03 09:45:48 +00:00
Jan Tattermusch
b13874d59e
Merge pull request #1158 from jskeet/nonnormalized-tostring
...
Ensure that FieldMask, Timestamp and Duration ToString() calls don't throw
2016-01-26 08:43:45 -08:00
Jon Skeet
3878d84662
Fix mistakes in highest-representable float64 integers
2016-01-21 10:49:57 +00:00
Jon Skeet
dd43dcca8c
Ensure that FieldMask, Timestamp and Duration ToString() calls don't throw
...
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.
2016-01-20 18:43:00 +00:00
Jan Tattermusch
8c5260b21b
Merge pull request #1096 from jskeet/custom-to-string
...
Introduce ICustomDiagnosticMessage to allow for custom string formatting
2016-01-19 19:38:16 -08:00
Jon Skeet
030c268489
Fix broken test
2016-01-15 17:34:10 +00:00
Jon Skeet
b1ea15f7a5
Make sure that
...
"valueField": null
is parsed appropriately, i.e. that it remembers that the field is set.
2016-01-15 14:18:16 +00:00
Jon Skeet
8866d6a80e
Reject JSON containing the same oneof field twice
2016-01-15 13:54:17 +00:00
Jon Skeet
52db5139c4
Change handling of unknown enums: we now write out the value as a number.
2016-01-15 13:45:53 +00:00
Jon Skeet
f437b67f60
Extra strictness for FieldMask conversion
2016-01-15 12:02:07 +00:00
Jon Skeet
022a9b2675
Allow the original field name (rather than camel-cased) when parsing JSON
2016-01-15 11:39:54 +00:00
Jon Skeet
1fc485928f
Fixes to JSON timestamp/duration representations
2016-01-15 11:39:27 +00:00
Jon Skeet
c74676f070
Report serialization errors in conformance tests
2016-01-15 10:55:57 +00:00
Jon Skeet
888e71bdfc
Prohibit null values in repeated and map fields in JSON
2016-01-15 10:55:36 +00:00
Jon Skeet
1a34ac03be
Throw a better exception when invalid base64 is detected in JSON
2016-01-15 10:43:06 +00:00
Jon Skeet
730c38ad8c
Support (and test) numeric enum parsing in JSON
2016-01-15 10:41:56 +00:00
Jon Skeet
f262611ff6
Fix handling of repeated wrappers
...
Previously we were incorrectly packing wrapper types.
This also refactors FieldCodec a bit as well, using more C# 6-ness.
2016-01-15 10:13:56 +00:00
Jon Skeet
f2fe50bfc5
JSON conformance test fixes
...
- Spot an Any without a type URL
- In the conformance test runner, catch exceptions due to generally-invalid JSON
2016-01-13 14:05:06 +00:00
Jon Skeet
5dba7d7b4c
Introduce ICustomDiagnosticMessage to allow for custom string formatting
...
This fixes issue #933 , effectively.
2016-01-13 10:58:49 +00:00
Jan Tattermusch
73c003c309
Merge pull request #1089 from jskeet/map-null
...
Prohibit null values in maps
2016-01-12 20:55:47 -08:00
Dongjoon Hyun
7b08d49e9d
Fix typos in README.md/CHANGES.txt
2016-01-11 14:52:01 -08:00
Jon Skeet
9e4f354f14
Prohibit null values in map fields
...
On deserialization, missing values for message types
are replaced with a "default" message.
2016-01-11 09:34:43 +00:00
Jan Tattermusch
6d1d415133
Merge pull request #1098 from jskeet/wkt-json
...
Ensure all formatted well-known-type values are valid JSON
2016-01-08 16:58:47 -08:00
Jan Tattermusch
698f61688c
Merge pull request #1088 from jskeet/codec-pruning
...
Remove unused method in FieldCodec.
2016-01-08 16:50:05 -08:00
Jon Skeet
b4a58173f2
Ensure all formatted well-known-type values are valid JSON
...
This involves quoting timestamp/duration/field-mask values, even when they're not in fields.
It's better for consistency.
Fixes issue #1097 .
2016-01-06 12:05:31 +00:00
Jon Skeet
aa431a0481
Improve number handling in JSON parsing
...
- 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
2016-01-06 11:16:10 +00:00
Jon Skeet
9f10c4576a
Remove unused method in FieldCodec.
...
(The method was last used a very long time ago, if ever.)
2016-01-05 14:36:14 +00:00
Jon Skeet
d49b9c81ec
Fix C# source generation shell script and remove out of date notes
...
The conformance tests now use types which are part of src/google/protobuf, so we need to include src in the proto path.
The notes around "fix-ups" have been out of date for some time now.
2016-01-04 14:02:00 +00:00
Jan Tattermusch
00ace95ae3
add reference generator dependency
2015-12-17 09:37:56 -08:00