Browse Source

fcl-passrc: fixed directives DispatchField and DispatchStrField

mattias 3 years ago
parent
commit
3f2e2ad0fa

+ 2 - 2
packages/fcl-passrc/src/pscanner.pp

@@ -4866,9 +4866,9 @@ begin
         HandleDefine(Param);
       'GOTO':
         DoBoolDirective(bsGoto);
-      'DIRECTIVEFIELD':
+      'DISPATCHFIELD':
         HandleDispatchField(Param,vsDispatchField);
-      'DIRECTIVESTRFIELD':
+      'DISPATCHSTRFIELD':
         HandleDispatchField(Param,vsDispatchStrField);
       'ERROR':
         HandleError(Param);

+ 1 - 0
packages/pastojs/src/fppas2js.pp

@@ -7090,6 +7090,7 @@ begin
     end;
     ClassScope:=ClassScope.AncestorScope as TPas2JSClassScope;
     end;
+
   if FieldName='' then exit;
 
   // there is a Dispatch(str) method with a directive -> check field

+ 3 - 3
packages/pastojs/tests/tcmodules.pas

@@ -17465,10 +17465,10 @@ begin
   StartProgram(false);
   Add([
   'type',
+  '  {$DispatchField DispInt}',
+  '  {$DispatchStrField DispStr}',
   '  TObject = class',
-  '    {$DispatchField DispInt}',
   '    procedure Dispatch(var Msg); virtual; abstract;',
-  '    {$DispatchStrField DispStr}',
   '    procedure DispatchStr(var Msg); virtual; abstract;',
   '  end;',
   '  THopMsg = record',
@@ -17490,6 +17490,7 @@ begin
   'begin',
   '']);
   ConvertProgram;
+  CheckResolverUnexpectedHints(true);
   CheckSource('TestClass_Message',
     LinesToStr([ // statements
     'rtl.createClass(this, "TObject", null, function () {',
@@ -17556,7 +17557,6 @@ begin
   Add([
   'type',
   '  TObject = class',
-  '    {$dispatchfield Msg}',
   '    procedure Dispatch(var Msg); virtual; abstract;',
   '  end;',
   '  TFlyMsg = record',