Jedi Code Formatter: class destructor lazarus / 9-Editor ---------------------------------------------------------------------- CCRDude · 2017-05-03 09:43 The JCF integrated into Lazarus 1.6.4 does not support class destructors. Since this leads to many of my units having issues, I checked the JCF code and propose this patch: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i --- C:/Deve lopment/lazarus-1.6.4-fpc- 3.0.2/components/jcf2/Parse/BuildParseTree.pas     Sun Jul 03 21:41:10 2016+++ C:/Development/lazarus-1.6.4-fpc- 3.0.2/components/jcf2/Parse/BuildParseTree.pas     Wed May 03 11:39:15 2017@@ -3593,14 +3593,16 @@       case fcTokenList.SolidTokenType(2) of         ttProcedure:           RecogniseProcedureDecl(false);       ttFunction:           RecogniseFunctionDecl(false);         ttConstructor:           RecogniseConstructorDecl;+        ttDestructor:+          RecogniseDestructorDecl;         ttOperator:           RecogniseClassOperator(True);         else           raise TEParseError.Create('expected class procedure or class function', lc);       end;     end;     else@@ -4096,14 +4098,17 @@ end;  procedure TBuildParseTree.RecogniseDestructorHeading(const pbDeclaration: boolean); begin   //DestructorHeading -> DESTRUCTOR Ident [FormalParameters]   PushNode(nDestructorHeading); +  if fcTokenList.FirstSolidTokenType = ttClass then+    Recognise(ttClass);+   Recognise(ttDestructor);   RecogniseMethodName( not pbDeclaration);   if fcTokenList.FirstSolidTokenType = ttOpenBracket then     RecogniseFormalParameters;    RecogniseProcedureDirectives; @@ -4384,14 +4389,16 @@             RecogniseClassVars;           ttProperty:           begin             RecogniseProperty;           end;           ttConstructor:             RecogniseConstructorHeading(True);+          ttDestructor:+          RecogniseDestructorHeading(True);           ttOperator:             RecogniseClassOperator(False);           else             raise TEParseError.Create('Expected class procedure or class function', lc);         end;        end; ---------------------------------------------------------------------- Ondrej Pokorny · 2017-05-03 14:09 Please post it to bugs.freepascal.org. Thanks. ---------------------------------------------------------------------- CCRDude · 2017-05-03 14:33 Done