• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

eclipse-aascw / aas-core-codegen / 35319779908
90%

Build:
DEFAULT BRANCH: main
Ran 18 Sep 2026 07:35AM UTC
Jobs 3
Files 264
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Sep 2026 07:30AM UTC coverage: 85.812% (+0.01%) from 85.798%
35319779908

push

github

web-flow
Reject non-finite floats in the C# JSON (#718)

JSON knows neither an infinity nor a not-a-number. Up to now the C#
jsonization handed both to `Nodes.JsonValue.Create`, which takes them
without a word; `System.Text.Json` only refuses them much later, when
the caller writes the document out, and says nothing about where in
the instance the offending value sat.

Unlike Java, C# had no serialization error path to mirror -- its XML
serialization can not fail either -- so this builds one in the shape
which lets a path be assembled while the stack unwinds: an internal
`SerializationFailure` carries a `Reporting.Error`, and
`Serialize.ToJsonObject` renders it once into a public
`SerializationException` with `Path` and `Cause`. That public exception
is deliberately shaped like the `Jsonization.Exception` which the
de-serialization already throws, so that the two directions read alike.

`ToJsonValue` stays an overload set, and does not gain distinct names
the way the Java conversions did. The overloads are load-bearing here:
they exist so that a *method group* of ours can be converted to
a `Serializer<T>`, which `Nodes.JsonValue.Create` can not be, being
a generic method with an optional second parameter (CS1503).
`ToJsonValue(double)` therefore moves out of the composed-only helpers
and is emitted next to `ToJsonValue(long)`.

`ToJsonValue(long)` no longer round-trips through a double to decide.
That check admitted 9007199254740994, which happens to be exactly
representable, where C++ and Go refuse it; the range is now spelled the
same way in every target.

The index needs no gating in C#: `SerializeList` and `SerializeTupleN`
are shared generic combinators which already know the position, so
the `try` sits in them once instead of being generated per item type,
and costs nothing on the happy path. Only the recording of a property
is gated, by `intermediate.reaches_a_number`.

`DoubleFrom` rejects a non-finite value as well. A conformant parser can
never produ... (continued)

43 of 43 new or added lines in 2 files covered. (100.0%)

34758 of 40505 relevant lines covered (85.81%)

2.57 hits per line

Jobs
ID Job ID Ran Files Coverage
1 3.10 - 35319779908.1 18 Sep 2026 07:38AM UTC 264
85.81
GitHub Action Run
2 3.12 - 35319779908.2 18 Sep 2026 07:38AM UTC 264
85.81
GitHub Action Run
3 3.11 - 35319779908.3 18 Sep 2026 07:38AM UTC 264
85.81
GitHub Action Run
Source Files on build 35319779908
  • Tree
  • List 264
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 0e07124f on github
  • Prev Build on main (#35298544509)
  • Next Build on main (#35322804807)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc