JSRecord<{key: value}> no longer recognized

A case of the JavaScript parser being dumber in 6.1.3 than it was in 6.1.2.

In one of my client’s project, we have opted for a virtual delete where a Timestamp is used to represent a user deletion.
Each table in the db is having the same Timestamp field, called tdeleted. (We use it later to synchronize disconnected clients).

To process the virtual deletion, we used some global methods, like this:

/**
 * @param {JSRecord<{tdeleted: Date}>} rec
 * @return {Boolean}
 */
function askForDelete(rec) {
   // ask for confirmation...
}

/**
 * @param {JSRecord<{tdeleted: Date}>} record
 */
function doVirtualDelete(record) {
   // perform the deletion
}

Then in our code we were doing this kind of calls:

/**

  • @param {JSEvent} event
    /
    function onActionDelete(event) {
    /
    * @type {JSRecord<{tdeleted: Date}>} */
    var rec = foundset.getSelectedRecord();
    var doIt = globals.askForDelete(rec);
    if (doIt) {
    globals.doVirtualDelete(rec);
    }
    }

Works perfectly fine, no complains from the parser in 6.1.2. Now in 6.1.3, I get these warnings:

  • The function askForDelete(JSRecord<{tdeleted: Date}>) is not applicable for the arguments (JSRecord<{tdeleted: Date}>)
  • The function doVirtualDelete(JSRecord<{tdeleted: Date}>) is not applicable for the arguments (JSRecord<{tdeleted: Date}>)

Is it me, or is this dumb?
Case #3496 https://support.servoy.com/browse/SVY-3496