Repository navigation
v0.8.1
-
No polynomial backtracking in the ABAP scanners. The event-CASE
header, the METHODS/IMPORTING read, the call scan and the inline-structure
collapse were regexes that rescan from every keyword or word on input
without a closing period or match (CodeQL js/polynomial-redos). They are
linear scans now; the findings over the abap2UI5 corpora are unchanged
byte for byte. -
ignoreworks on Windows. A config'signorepatterns were matched
against the walked path with the platform's separator, so/generated/-
the spelling the README gives - dropped nothing on Windows and the ignored
tree was checked after all. The path is now tried with forward slashes as
well, the way a rule'sexcludealready was. -
unbound-public-attributelands on its declaration after aTYPES
structure. The PUBLIC SECTION was measured on a copy in which every
BEGIN OF … END OFblock had been collapsed to its name, so each
attribute after such a block was reported a few lines early - in the
comment above it, where a next-line directive suppresses nothing - and the
rule's own "TYPE REF TOis out of scope" test read the wrong
declaration:DATA mo_x TYPE REF TO zcl_yandDATA mt_x TYPE REF TO data
after the block were reported. The collapse now blanks the block instead
of cutting it, so the text keeps its offsets.unused-public-attribute
reads the same walk and is corrected with it. abap2UI5's node/srv test
apps and rap-ext carried the false findings (rap-ext: six of its seven
baseline entries areTYPE REF TO dataand are now stale). -
A literal
b = abap_falsereconstructs as"false". Every
a( n = … b = … )was rebuilt as"true", soenabled="false"and
editable="false"were invisible to the rules and a disabled Input fed by
a literal was aneditable-control-without-binding(samples-stack app
484). The builder writesfalsefor anything that is notabap_true, so
abap_false,spaceand a blank literal now reconstruct as"false";
abap_trueand every expression or variable stay"true"as before. -
handler-without-eventreads only the WHENs of a CASE over the event.
EveryWHEN \X`counted as a handler - an operator switch (CASE to_upper( s-operation ). WHEN `EQ`.), a CASE over escape characters, a status switch nested in a handler, aSWITCH #( … WHEN
`Phone` THEN … )arm (samples-stack apps 319 and 489, samples 004, 025, 488 and 504, all 116 hits on samples-controls). A WHEN is a handler now only at the own level of a CASE whose subject is the event: the read itself, a variable assigned from it (DATA(lv_event) = client->get( )-event.), or a parameter of a method the class hands it to (on_event_box( event )). The CASE/ENDCASE scan behind it no longer counts the word CASE inside a literal, which ran the event CASE on into the next method. And three more raises are known: theoncloseofmessage_box_display( )/message_toast_display( ),"onClose":"X"in their CONTROL_GLOBAL option object, and the event of acs_event-hash_attach_changedlistener (the last one like a timer's: unhandled, it is anevent-without-handler`). -
smart-variant-without-initacceptsfilter_bar_variant_init. The
classic FilterBar's action registers the bar with the
SmartVariantManagement and then calls itsinitialise( ), the same
handshake - a class wiring it was reported for a handshake it makes
(samples-stack app 493). -
frontend-action-as-backend-eventleaves a class's owncs_event
alone. An app declaringCONSTANTS: BEGIN OF cs_eventfor its backend
event names had every_event( cs_event-search )reported as the client's
frontend action, and--fixrewrote the wires tofollow_up_action( ),
which broke them (samples apps 000 and 496, 29 warnings on rap-ext). With
an own declaration only a spelling through a client reference
(client->cs_event-…,z2ui5_if_client=>cs_event-…) is judged; the bare,
me->and own-class spellings are the app's constant. -
The
unused-namespace-declarationfix also removes the last
declaration of a chain.)->a( n = \xmlns:form` v = `…` ).carried no fix, because deleting its line took the statement's end with it - 54 of 127 such findings in abap2UI5/samples. It is now cut out from the end of the line before, which then closes the chain (… v = `sap.ui.core.mvc`
).); two stale ones in a row at the end take a second--fix` pass. -
missing-on-navigated-branchno longer fires on a sub-app. A method
of the class NAMEDview_display( )counted as the client's display call,
so a sub-app that only builds into its parent's view (samples apps 105 and
112 under 104) was told to add a navigated branch, and the fix added a
redundant one. Only a display called ON an object (client->…,
mo_client->…) counts now; an own method is followed into its body as
before.