Issue 30689  —   Misleading information returned by the Syntax Check (Pre-Compiler)

Status:   Solved in 10.2.01

Solution available in patch(es):      G101

Description:

 Misleading information returned by the Pre-Compiler Syntax Check

 Environment:
 - Uniface: Uniface 9.6.04
 - Operating System: OS independent
 - Database: DBMS independent

 To reproduce:
 - When the following code is entered in an included proc:

   ENTRY LP_QUIT_WORD

     if($hv_APPLICATION$ = "")return(-90)

     ; the compilation information is around the next line:

     $hv_APPLICATION$->QUIT(0,-,-)

     if($procerror < 0)
       putmess "Word_Fault (APP->QUIT) %%$procerror%%%" ;<msg>
       return($procerror)
     endif

     if($hv_APPLICATION$ != "")
       deleteinstance $hv_APPLICATION$
       if($procerror<0)
         putmess "UnifaceFault (DeleteInstance) %%$procerror%%%" ;<msg>
         return($procerror)
       endif
       $hv_APPLICATION$ = ""
     endif
     return(0)

   The following error message pops up:

    8249 - Compiler found errors 1 one procs.

   But the message frame shows the following information:

   Compiling IP
   (LP_QUIT_WORD)      4                 $hv_APPLICATION$->QUIT(0,-,-)
   (LP_QUIT_WORD)  warning:   1000 - Argument marked as optional.
   (LP_QUIT_WORD)  warning:   1000 - Argument marked as optional.
   Syntax check [info 0, warnings 2, errors 0]
   1023 - Compilation done.

 - When the statement:
     $hv_APPLICATION$->QUIT(0,-,-)
   is changed to:
     $hv_APPLICATION$->QUIT(0)
   the pop up error message is gone.

 Note: this problem did not occur with Uniface 9.5

Workaround:

 There is no known workaround for this problem.

Notes:

 Syntax errors and warnings are from now on reported correctly.

 If you do not want the Syntax check to report errors when leaving the Include
 or Global Proc Editor you can switch off the following Proc Editor preference:
 'Syntax Check Include Proc and Triggers after Save'.