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

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

Build:
DEFAULT BRANCH: main
Ran 28 Sep 2026 08:36AM UTC
Jobs 3
Files 301
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

28 Sep 2026 08:30AM UTC coverage: 88.522% (+0.02%) from 88.507%
36397783076

push

github

web-flow
Fix optional arguments and locals (#787)

The optional arguments of the verification functions, and the local
variables holding optional values, did not compile in Java, C++ and Go,
but no meta-model covered them so that went unnoticed.

Java declared an optional argument as ``Optional<String>`` without
importing ``Optional``, while the callers passed ``null`` for an empty
optional, and the body used the argument without ``.get()``. We keep
the nullability explicit: the callers pass on the ``Optional`` as-is,
wrap a non-optional value with ``Optional.of``, and the optional
arguments and locals are unwrapped like the optional properties:

    textIsShort(that.getOptionalText())
    return (!text.isPresent()) || StringHelpers.len(text.get()) <= 10;
    var note = item.getNote();

The hand-written snippet of ``ID_shorts_of_variables_are_unique`` in
the test data of ``aas_core_meta.v3`` now takes the ``Optional``'s as
well, instead of the nullable ``Iterable``'s. The snippet in
aas-core3.0-java needs the same change on the next re-generation.

C++ de-referenced an optional name without parentheses, so that
``*texts.size()`` and ``*item->name()`` accessed the optional itself.
We now always parenthesize the de-referenced value, ``(*texts).size()``.

Go de-referenced the value passed to an optional argument,
``TextIsShort(*that.OptionalText())``, and both sides of the assignment
to an optional local, ``*note := *item.Note()``. We now pass on
the pointer, and re-bind the pointer of a local, ``note := item.Note()``,
since writing through it would change the aliased property, while
Python only re-binds the name.

The new common meta-model ``optional_arguments`` covers the optional
arguments of all the kinds of types, their forwarding to another
verification function, and a local holding an optional property.

66 of 79 new or added lines in 4 files covered. (83.54%)

1 existing line in 1 file now uncovered.

41259 of 46609 relevant lines covered (88.52%)

2.66 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
78.01
0.19% aas_core_codegen/golang/transpilation.py
6
77.11
-0.17% aas_core_codegen/java/transpilation.py
1
89.6
-0.03% aas_core_codegen/java/lib/_generate_verification.py

Coverage Regressions

Lines Coverage ∆ File
1
78.01
0.19% aas_core_codegen/golang/transpilation.py
Jobs
ID Job ID Ran Files Coverage
1 3.12 - 36397783076.1 28 Sep 2026 08:38AM UTC 301
88.52
GitHub Action Run
2 3.11 - 36397783076.2 28 Sep 2026 08:38AM UTC 301
88.52
GitHub Action Run
3 3.10 - 36397783076.3 28 Sep 2026 08:38AM UTC 301
88.52
GitHub Action Run
Source Files on build 36397783076
  • Tree
  • List 301
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 61f4e9cf on github
  • Prev Build on main (#36387064470)
  • Next Build on main (#36399939998)
  • 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