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

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

Build:
DEFAULT BRANCH: main
Ran 27 Sep 2026 05:47PM 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

27 Sep 2026 05:40PM UTC coverage: 88.453% (+0.02%) from 88.433%
36337843067

push

github

web-flow
Declare mutability of verification parameters (#781)

We let the verification functions declare which arguments they mutate,
and check the bodies against the declarations in all the targets. A
``List[T]`` argument is mutable, a ``Sequence[T]`` one read-only, and
an object argument is read-only unless declared ``Mutable["Item"]``.
Mutability is deep, flows from the root variable to the values reached
through it, and is fixed at a variable's definition; an invariant's
``self`` and method results are read-only. ``Sequence`` and ``Mutable``
are refused anywhere but on the arguments of verification functions,
*e.g.*, on properties, and ``Mutable`` around a list or a primitive
value is refused with an explanation.

Python shares a stored list, while C++ copies it, so a stored list must
be an explicit copy in all the targets:

    item.texts = texts[:]

C++ now supports the assignments to the properties and the list items.
A ``List`` argument becomes ``std::vector<T>&``, the targets use
setters and ``mutable_x()`` getters, and a new aliasing analysis
declares each local as a copy, ``const auto&`` or ``auto&`` so that it
behaves as in Python, or reports an error where neither is faithful.
This also removes needless copies, *e.g.*,
``const auto& texts = item->texts();``.

The ``assignment_targets`` meta-model now covers the mutations across
calls, loops and aliases. Since only C++ copies the lists by value, we
remove the generated unit tests of the other targets, which share them
as Python does, and generate the unit tests executing the mutations
only for C++.

614 of 671 new or added lines in 21 files covered. (91.51%)

14 existing lines in 2 files now uncovered.

40875 of 46211 relevant lines covered (88.45%)

2.65 hits per line

Uncovered Changes

Lines Coverage ∆ File
31
73.04
-0.44% aas_core_codegen/cpp/transpilation.py
14
94.91
aas_core_codegen/cpp/aliasing.py
3
86.05
0.12% aas_core_codegen/intermediate/_translate.py
3
82.38
1.29% aas_core_codegen/intermediate/type_inference.py
2
86.2
0.42% aas_core_codegen/parse/_translate.py
1
78.87
-0.02% aas_core_codegen/csharp/transpilation.py
1
77.14
0.11% aas_core_codegen/golang/transpilation.py
1
76.64
0.24% aas_core_codegen/java/transpilation.py
1
77.99
-0.02% aas_core_codegen/typescript/transpilation.py

Coverage Regressions

Lines Coverage ∆ File
12
73.04
-0.44% aas_core_codegen/cpp/transpilation.py
2
93.94
-0.29% aas_core_codegen/cpp/lib/_generate_verification.py
Jobs
ID Job ID Ran Files Coverage
1 3.10 - 36337843067.1 27 Sep 2026 05:49PM UTC 301
88.45
GitHub Action Run
2 3.12 - 36337843067.2 27 Sep 2026 05:49PM UTC 301
88.45
GitHub Action Run
3 3.11 - 36337843067.3 27 Sep 2026 05:49PM UTC 301
88.45
GitHub Action Run
Source Files on build 36337843067
  • Tree
  • List 301
  • Changed 28
  • Source Changed 0
  • Coverage Changed 28
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • b2941cc9 on github
  • Prev Build on main (#36315076086)
  • Next Build on main (#36338851879)
  • 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