diff --git a/ChangeLog.txt b/ChangeLog.txt index f38464361c..6f107d1863 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -7,6 +7,11 @@ Entries may not always be in chronological/commit order. See license at the end of file. */ +2023-05-12 18:13 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/compiler/hbmain.c + ! fixed GPFs in dummy and never finished code for strong typing and message + call validation. + 2023-04-21 13:01 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/rtl/tbrowse.prg ! disabled HB_CLS_NOTOBJECT in TBrowse class definition diff --git a/src/compiler/hbmain.c b/src/compiler/hbmain.c index 3a9d14cf30..0dd8a5bb50 100644 --- a/src/compiler/hbmain.c +++ b/src/compiler/hbmain.c @@ -1122,6 +1122,17 @@ PHB_HDECLARED hb_compMethodAdd( HB_COMP_DECL, PHB_HCLASS pClass, const char * sz { PHB_HDECLARED pMethod; + if( ! pClass ) + { + char buffer[ 80 ]; + hb_snprintf( buffer, sizeof( buffer ), + "Class member '%s' declaration without class definition.\n", szMethodName ); + hb_compOutErr( HB_COMP_PARAM, buffer ); + HB_COMP_PARAM->iErrorCount++; + HB_COMP_PARAM->fError = HB_TRUE; + return NULL; + } + #if 0 printf( "\nDeclaring Method: %s of Class: %s Pointer: %li\n", szMethodName, pClass->szName, pClass ); #endif @@ -1268,6 +1279,15 @@ void hb_compDeclaredParameterAdd( HB_COMP_DECL, const char * szVarName, PHB_VART } } } + else if( ! HB_COMP_PARAM->pLastMethod ) + { + char buffer[ 80 ]; + hb_snprintf( buffer, sizeof( buffer ), + "Message parameter '%s' declaration without class/message definition.\n", szVarName ); + hb_compOutErr( HB_COMP_PARAM, buffer ); + HB_COMP_PARAM->iErrorCount++; + HB_COMP_PARAM->fError = HB_TRUE; + } else /* Declared Method Parameter */ { #if 0