Unable to fully parse Oracle types

Hello,
I have a problem when analyzing Oracle PLSQL Type … SonarQube raises WARNING:

WARN:
WARN: Unable to fully parse: C:/_svn/TIA_SRC/Trunk/PLSQL/TYP/PRODUCT/obj_risk_dmo01_type.tpb
WARN: Parse error starting from line 1
WARN:
WARN:
WARN: Unable to fully parse: C:/_svn/TIA_SRC/Trunk/PLSQL/TYP/PRODUCT/obj_risk_dmo01_type.tpb
WARN: Parse error starting from line 10
WARN:
INFO: 1/1 source files have been analyzed

And I don’t know if it is only warning a I needn’t be worried … or if the analyse on this object didn’t proceed … or …

The source code of the object is bellow and the problem is with casting to “parent object”: (SELF AS obj_risk_XXXX_type) . Probably this feature is not covered when parsing objects.

CREATE OR REPLACE TYPE BODY OBJ_RISK_DMO01_TYPE 
AS
   OVERRIDING MEMBER PROCEDURE ValidateSpecific ( ptab_actionresult    OUT tab_error_type,
                                                  ptxt_userid       IN  VARCHAR2,
                                                  pint_policyno     IN  INTEGER )
   IS

      MODULE_LOG_ID        CONSTANT VARCHAR2(4)   := 'O734';
      METHOD_LOG_ID        CONSTANT VARCHAR2(4)   := '0003';
   BEGIN
      (SELF AS obj_risk_XXXX_type).ValidateSpecific(ptab_actionresult,
                                                  ptxt_userid,
                                                  pint_policyno);
   END ValidateSpecific;
  
END;
/

Hi,

Indeed, this is a limitation of our parser which doesn’t know about what Oracle calls “Generalized Invocation”. I created SONARPLSQL-758 to track this problem.

When encountering such parsing issue, our PL/SQL parser tries to continue parsing the current file. In your case, the whole CREATE OR REPLACE TYPE BODY is skipped and no issue can be raised on it.