ROneCOne 1.10.1
ROneCOne 1.10.1
ROneCOne.cls no longer declares variables that nothing reads. Behavior and the public surface
are unchanged, so upgrading is a drop-in replacement and no calling code changes.
Changed
pyVBAanalysis 2.2.0 added checks for unused variables and constants and for variables that are
assigned but never read. Run over 1.10.0, they reported 57 declarations across the runtime, the
live tests, and the demo modules. None was a constant, and removing them changes no behavior.
In the runtime, two linked-list node fields had gone unused since 1.0.0, because a node finds its
neighbors by index through the list that owns it. Four locals were never referenced, and the HTTP
poll saved an error source it never raised. Eight calls stored a result in a throwaway variable
only to discard it, and they are now plain statements. CsvClassifyNumber returns the type of
its overflow probe rather than restating it as a constant, which is the same answer.
The Collections, Data, HTTP, and Tasks demos drop the same throwaway variables, and the Data and
Tasks worksheets show the plain calls. The Collections, Data, and Excel Table demos also no longer
declare locals such as Dim Age As Variant for the names they reach through bang syntax. Earlier
pyVBAanalysis versions reported !Age as undeclared without them.
Development
The repository's static-analysis gate moved to pyVBAanalysis 2.2.0 and pyOpenVBA 6.0.0, so a
variable that nothing reads now fails it. VBA has no discard syntax. A Function called only for
its effect is written as a statement, and where VBA requires an assignment, as with a property
read, a conversion probe, or a delegate(args) call, the code reads the value back. Eight live
assertions came from that: six check that an Action returns Empty and that a failed invocation
returns nothing, and two check that a refused count returns none.
Release evidence
Each of three fresh Microsoft 365 Excel processes passed 1005 live assertions, the 997 of 1.10.0
plus the eight above. All ten suite benchmark scenarios met their release gates in every sample.
The medians ran invocation 0.11, collection 0.17, ordering 0.94, dictionary build and read 0.14,
100,000 indexed lookups 0.26, keyed mutation 0.66, 10,000 list writes 0.07, 2,000 row reads 0.06,
10,000 hash set reads 0.01, and constrained maintenance 0.50 seconds.
The Tasks and Data workbooks were rebuilt from their builder. All sixteen were repackaged with the
stamped modules and run in place, and all 205 of their examples passed. An AutoFit check in Excel
over every cell reported what it reported for 1.10.0: only the two Text digests, which wrap
inside rows sized to hold them. Every rendered sheet was reviewed. The VBE casing round trip over
the runtime, all eighteen demo modules, and a host module brought every token back as written.
Static analysis on pyVBAanalysis 2.2.0 reported zero diagnostics across the runtime source, the
live test modules, the demo modules, and all sixteen final workbooks, with and without inline
suppressions. 89 Python contract tests pin the source, the demos, and the documentation. Every
packaged VBA module round-tripped byte-for-byte.