History for Pascal Expert


This is a list of major changes (error fixes and enhancements) for Pascal Expert.

Version 9.0.5 July 25, 2017
  • fixed parser error for attribute in interface section
  • fixed issue with "with"-statements
Version 9.0.4 June 29, 2017
  • fixed some problems with expressions
Version 9.0.3 June 28, 2017
  • fixed some problems with report section STWA4 (Index Error)
Version 9.0.2 June 18, 2017
  • fixed problems resolving typecasts
Version 9.0.1 June 9, 2017
  • click Help button in options dialog did not load relevant topic
  • wrong links to help topics for new report sections
  • fixed problem parsing $IF-directive
  • some Warning Report sections were erronously checked for constants and parameters
  • fixed some issues resolving generics
Version 9.0.0 April 17, 2017
  • support added for the new Delphi 10.2 Tokyo, all compiler targers
  • new section in Strong Warnings Report: "Index error" (STWA4)
  • new section in Strong Warnings Report: "Possible bad pointer usage" (STWA5)
  • new section in Strong Warnings Report: "Possible bad typecast (consider using "as" for objects)" (STWA6)
  • new section in Warnings Report: "Mixing interface variables and objects" (WARN53)
  • new section in Warnings Report: "Set before passed as out parameter" (WARN54)
  • new section in Warnings Report: "Redeclares ancestor member" (WARN55)
  • new section in Warnings Report: "Parameter to FreeAndNil is not an object" (WARN56)
  • new section in Warnings Report: "Enumerated constant missing in case structure" (WARN57)
  • new section in Warnings Report: "Mixed operator precedence levels" (WARN58)
  • new section in Warnings Report: "Explicit float comparison" (WARN59)
  • new section in Code Reduction Report: "Consider using interface type" (REDU18)
  • new section in Code Reduction Report: "Redundant parentheses" (REDU19)
  • new section in Code Reduction Report: "Common subexpression, consider elimination" (REDU20)
  • new section in Code Reduction Report: "Default parameter values that can be omitted" (REDU21)
  • new section in Code Reduction Report: "Inconsistent conditions" (REDU22)
  • new section in Code Reduction Report: "Typecasts that possibly can be omitted" (REDU23)
  • fixed some parser problems
Version 8.3.15 March 6, 2017
  • fixed error parsing declaration with generics
  • fixed error parsing "final" directive
  • fixed problem parsing class declaration with unitscoped identifier names
  • fixed some issues with references to field in objects
  • fixed some issues with dereferencing variables
Version 8.3.14 February 25, 2017
  • fixed some problems with object in DFM-file missing type
  • improved handling of references to class helper methods
  • STWA3 (Subprogram calls itself unconditionally) currently does not examine overloaded subprograms
  • fixed exception in some cases while watching changed files in the editor
  • WARN9 (Var parameters that are used, but never set) and WARN10 (Var parameters that are used, but possibly never set) now exclude parameters to methods for classes that implement an interface
  • OPTI8 (Parameter is "var", can be changed to "out"') now exclude parameters to methods for classes that implement an interface
  • fixed error resolving generics declaration
  • improved handling of record fields passed as parameters
  • fixed parser error related to anonymous functions
  • STWA2 (Ambiguous unit reference) now excludes warnings if one identifier is from System and the other one from an Embarcadero unit if it is not clear that it is indeed an ambiguous reference
  • fixed problem resolving read/write for properties
  • fixed problem resolving overloaded calls in some cases
  • fixed error affecting WARN18 (Function result not set)
Version 8.3.13 January 29, 2017
  • fixed problem that could cause errors for CWARN3 (conflicting accelerators) and CWARN4 (focused control not set)
  • fixed list index error when resolving unit names
  • removed false positives for references to System identifiers in some cases
  • fixed error in low-level function handling references, caused missing warnings for WARN19 (recursive subprograms)
  • fixed error affecting REDU2 and REDU3 (identifiers only used in lower scope)
Version 8.3.12 January 21, 2017
  • removed some duplicate references added to identifiers
Version 8.3.11 January 14, 2017
  • fixed problem resolving unit names
  • STWA2 (Ambiguous unit references) is not reported when units involved are System and Windows
  • WARN47 (Duplicate lines) now excludes some common assembler statements
  • COWA2, checks that object is of correct type, could cause AV
  • REDU8 (Zero-initialized fields), now also handles variants
  • OPTI8 (Var parameter can be changed to out) removed some false positives
  • fixed problem resolving generic types
  • fixed handling of references to record variables and field instances
Version 8.3.10 January 6, 2017
  • REDU1 (Identifiers not used) now does not report a parameter used with a subprog that implements assembler code
  • STWA2 (Ambiguous unit references) now also displays line number for reported units
  • WARN18 (Function result not set) is not reported when the result type is unknown (source not found)
  • now uses TurboActivate 4.0.8
  • some alert report sections were generated although alerts were disabled
  • fixed parser problem with constant declared as an anonymous record type
  • fixed parser problem resolving unit names
Version 8.3.9 December 15, 2016
  • WARN37 (Empty subprogram parameter list) is now not selected as default
  • fixed problem with WARN46 (Local variables that are set but not later used) causing false positives under some conditions
  • fixed problem resolving unit names
  • WARN9, WARN10 (Var parameters that are used but never set) do not list parameters for methods that are overridden
  • fixed error for units with many overloads
  • wrong version number displayed in About-box and at startup of IDE
  • fixed error in WARN52 (Bigger assigned to smaller), caused AV
  • skips warning for MEMO7 (Local objects that are referenced after beging freed), if Free is in a condition
  • removed some needless warnings in STWA2 (Ambiguous unit refs)
  • MEMO1 (Local objects with unprotected calls to Free) now skip objects that are not created (probably assigned to existing object)
  • WARN50 (Identifier with same name as keyword/directive) now does not report overriding methods
  • false warning in STWA3 (Subprogram calls itself unconditionally), when parameters given as "()"
Version 8.3.8 November 27, 2016
  • end line of structures (for-loop, if-block etc) was not correctly registered
  • removed false warning in WARN15 when constructor calls another constructor
  • WARN7, WARN8 now also include local variables that are just read (never set)
  • removed some false warnings for arrays passed as parameters of pointer types
Version 8.3.7 November 22, 2016
  • enumerated type could be marked as unused even though its enumerated constants were used in a typed constant declaration
  • counter for WARN52 warnings was not correctly set
  • improved handling of "strict" class members
  • fixed problem for identifiers starting with '&&'
  • misc. parser fixes and improvements
Version 8.3.6 September 24, 2016
  • "WARN15-Constructors/destructors without call to inherited" was reported also for abstract members
  • "WARN26-Instance created of class with abstract methods" was triggered erronously in some cases
  • fixed problem resolving record type declared unnamed directly in variable declaration
Version 8.3.5 September 4, 2016
  • fixed problem in WARN8
Version 8.3.3 August 31, 2016
  • fixed problems with generics
  • improved WARN7 report section (Local variables that are referenced before they are set)
  • fixed a problem with report section OPTI8 (Parameter is "var", can be changed to "out")
  • improved WARN18 (Function result not set)
  • fixed problem with "with" header, affecting WARN24 (Possible bad object creation)
  • improved WARN26, better handling of generic types (Instance created of clkass with abstract methods)
  • WARN49, now excludes identifiers with name "Name" or "Index" (Redeclared identifiers from System unit)
Version 8.3.2 June 13, 2016
  • fixed problem with type declaration in class
Version 8.3.1 June 5 2016
  • fixed problem with sorting of references
  • fixed parsing problems with generics
  • internal structure could overflow in some cases
Version 8.3.0 May 8 2016
  • synched version numbering for minor digit, with Pascal Analyzer
  • fixed generics parser error
  • added support for Delphi 10.1 Berlin, with all targets
  • fixed parser error for conditional directive
  • fixed parser error for anonymous function
Version 8.1.0 Feb 11, 2016
  • fixed problem resolving overloaded subprograms
  • fixed problem resolving generics
  • added option to run out-of-process
  • added support for Delphi 2007
Version 8.0.8 Jan 24, 2016
  • fixed error with pointer dereference
  • improved resolving of generics declarations
  • fixed error for some COWA report sections, that could result in exceptions
  • new check button to show/hide toolbar
  • fixed problems with "with"-statements, resolving identifiers
  • fixed problem resolving overloaded subprograms
Version 8.0.7 Dec 11, 2015
  • fixed AV when going to WelcomePage
  • fixed some problems with "WARN47-Duplicate lines"
Version 8.0.6 Dec 1, 2015
  • fixed issue handling calls to Inc and Dec
  • fixed issues with unit scopes
  • fixed parser issue with generics
  • "show implementation line numbers" is now True, as default...
  • REDU1 now also reports unused identifiers declared in subprogs that are not used
  • fixed error with identier names
Version 8.0.5 Nov 9, 2015
  • changed memory handling, memory is now released totally after each analysis
  • WARN50 (bad identifier names) is now not selected as default
  • WARN50 and CONV12 (bad identifier names) now do not report common identifier names like "Name" and "Index"
Version 8.0.4 Nov 4, 2015
  • further fix for problem with wizard not loading
  • fixed parser error involving anomymous function returning generics
Version 8.0.3 Nov 3, 2015
  • fixed issue that prevented wizard from loading in some cases
Version 8.0.2 Nov 3, 2015
  • fixed parser error with generics code in some rare cases
  • fixed issues adding menus to IDE
Version 8.0.1 Oct 31, 2015
  • fixed problem with menus not created in some situations
  • added options to select shortcuts
  • selection list in options dialog was not read-only
  • walking selection list did not show relevant tab page
Version 8.0.0 Oct 30, 2015
  • first public version