History for Pascal Analyzer
This is a list of major changes (error fixes and enhancements) for Pascal Analyzer
Version 6.1.2 January 18, 2012
- removed false positives for section "Function Result not set" in some cases
- removed false positives for section "Property Access" in some cases
- fixed error resolving implementation of overloaded methods
- fixed error resolving identifiers in some cases
- fixed error parsing attributes with nestled "["
- fixed error resolving identifiers in some rare cases
- Warnings Report, Duplicate Lines, now skips lines starting with "//"
- Warnings Report, Duplicate Lines, jump to location in source did not work
- if "PALOFF" used for parent type like record or class, also child elements will be suppressed
- fixed problem resolving pointer type declarations in some cases
- fixed error resolving assignment of identifiers om some cases
- fixed error parsing case-structures in some cases
- new PALWiZ5.DLL for Delphi XE2 (needed for users that do not have Delphi XE)
- fixed error parsing set type in record fields
- added support for Delphi XE2, all compiler targets
- fixed error with Namespaces setting
- fixed error with the "align" directive in Delphi XE2
- improved message for parser errors in some situations
- fixed error with ToDo report setting in project template
- fixed error parsing property read declaration in some situations
- fixed error recognizing function pointers in typed constants
- fixed error parsing UTF-8 source files starting with blank line
- fixed error recognizing array elements
- fixed error parsing type declarations containing constants
- fixed error parsing type declarations with arithmetic expressions
- fixed error parsing var declaration with generic type
- fixed error parsing property declaration with generic type
- fixed error parsing $IF-expressions in some cases
- new Help Report
- new Searched Strings Report
- new Map File Report
- improvements in the Third-Party Report
- new sections and improvements in the Memory Report
- new sections and improvements in the Warnings Report
- improvements in the Complexity Report
- improvements in the Literal Strings Report
- improvements for multi-projects
- improvements for PALCMD.EXE
- .. and more ...
Version 5.1.9 August 22, 2011
- fixed error when displaying results for multi-reports
- fixed output format error in Third-Party Report
- environment variables were not resolved for excluded folders in multireports
- directive "experimental" was not always recognized
- solved problem with Reverse Call Report, where some branches were not always included
- prevented stack overflow if bad include directive
- fixed minor parser error
- improved handling of exception types in Convention Report
- removed false positives with strings in Reduction Report, "Unneeded boolean comparisons"
- PAL.EXE now supports address spaces larger than 2GB (the IMAGE_FILE_LARGE_ADDRESS_AWARE flag is set in the EXE header)
- PAL.EXE does not any more loads PALWIZ.DLL at startup
- new PALWIZ4.DLL added
- fixed problem with Warnings Report, "local variables ref before set"
- fixed error parsing "stdcall of object"
- fixed error parsing "X = object(Y.Z)"
- Reduction Report, "Identifiers never used", now does not include unused parameters to methods that are overriding inherited methods (because the parameter list is fixed)
- Strong Warnings Report, "Ambiguous unit references" now lists the units that are ambiguous
- Reduction Report, "Local identifiers that are set and referenced once" and "Local identifiers that possibly are set and referenced once", exclude identifiers that are set in a loop
- Warnings Report, "Constructors/destructors without calls to inherited", now does not show warning for indirect calls to inherited, e.g. when constructor/destructor calls another constructor/destructor which calls inherited
- fixed problem parsing property declaration in some cases
- fixed error with anonymous method
- improved handling of class/record constructors and destructors
- fixed error with pointer dereference
- fixed error with procedure type directive
- fidex error with class destructors and override directive
- improved handling of Exit-statements
- fixed error handling calls to overloaded functions
- fixed a problem with multireports, when rendering report tree
- fixed error with default property
- fixed error parsing new Exit()-function
- now also handles record destructors
- better handling of Self keyword in class implementations
- fixed error parsing expressions
- improved handling of local Result variable
- fixed error formatting displayed name in reports when not Name-Module-Kind selected
- improved handling of default properties
- fixed error parsing string constant with "deprecated" directive
- fixed error parsing new Exit()-function
- fixed handling of record destructors
- fixed error with function pointers
- support added for Delphi XE code
- minor UI error fixed when selecting multi-reports
- fixed error sometimes occurring when loading DFM file saved as UTF8
- fixed error when listing in status report would show duplicate search directories
- fixed error parsing class helper declarations
- fixed error parsing class code with type declarations
- fixed error parsing anonymous method with nested function
- fixed problems with multireports
- fixed problems suppressing lines from reporting
- build reports quicker, by using multiple threads
- suppress reporting for selected code lines, filter out false positives
- new Exception Report, provides info about exception handling
- new Similarity Report, reports similarity by soundex
- new Module Totals Report, like the Totals Report, but divided by unit
- new section in Duplicates Report, only reports identifiers in overlapping scope
- new options for PALCMD.EXE to better integrate with your build process
- speed improvements both for parsing and reporting
Version 4.6.4 May 3, 2010
- added new PALWIZ3.DLL for Delphi 2009
- if XML reports were written to a single file, the surrounding
tag was not written correctly - links to reports in HTML could be misformed in some cases
- better error handling for multi reports when main file was not found
- OS envvars also supported, not only those added in Delphi IDE
- environment variable can be used for main path
- removed some false positives for "Danger Raise" in Warnings Report
- fixed error when an object could be registrered as created instead of set, leading to errors in Cross Reference and Memory Reports
- fixed bad formatting for some numeric values in Complexity Report rating lists
- improved parsing of $IF-expressions
- Reduction Report, unused local variable section: paramater belonging to a subprogram that is not used, is now not reported (as it says in the docs, but was not so)
- Control Warnings Report, now only reports buttons/menuitems with missing OnClick, if ModalResult is not set
- Reduction Report, "Boolean assignment can be shortened" now only reports simple assignments (not when there are several statements in each branch)
- bad counter value for previous analysis for a few reports
- bad file name for index HTML file
- misformed filename suggested when saving new projects
- fixed error parsing anonymous methods
- support for Delphi 2010, which is now the default compiler target
- ToDo Report included items from modules in non-reported folders
- fixed error parsing DFM files with UTF8 BOM
- now uses EurekaLog for exception handling
- fixed bug in overload handling
- fixed error when parsing for-loops in some cases
- improved overload handling
- fixed bug in Uses Report
- parameters to external functions were marked as unused in "Code Reduction Report"
- functions marked with "message" directive are now not listed as not used in "Code Reduction Report"
- improved resolution of calls to overloaded functions
- improved help indentation for source code
- fixed problem resolving relative paths on network drives
- "Reduction Report" for a multi-project did not account for unused identifiers that are not needed but must be kept
- improved handling av constant declarations
- improved resolution of calls to overloaded functions
- now selects relevant section, when invoking help (and report/section selected in treeview)
- external viewer did not work after app options dialog shown and OK'ed
- fixed problem handling class helper declaration
- selection of "Both source and form files/Only source files" was not handled correctly in all situations
- Missing Property Report now suppresses warnings for missing OnClick properties for TBitBtn, if property value for Kind is present.
- old hits for multi-report were not properly read from project file on startup
- improved handling of Free, Release for the Memory Report
- selection of "Both source and form files/Only source files" was not handled correctly in all situations
- "Set defaults" for Missing Property Report inserted wrong strings
- Missing Property Report now suppresses warnings for missing OnClick properties for TButton and TBitBtn, if ModalResult is present
- list box for selection of projects in a multi-project, changed caption from "Multi-projects" to "Projects"
- checkbox for "Strong Warnings Report" was enabled even for a multi-project
- general preferences, "Load project at startup" changed to "Load latest project at startup"
- pressing F1 in the main window now shows help for the current report
- help button in dialog for selecting report sections, now shows relevant help for the current report
- link to web did not work in About-dialog
- Warnings Report, "Interfaced class identifiers that are public/published, but not used outside of unit", now does not report constructors/destructors
- Memory Report, also checks for 'Release'
- fixed problem in Todo Report
- fixed problem in reopen menu
- fixed error related to anonymous methods
- fixed error related to anonymous methods
- PALCMD now uses PAL.INI from the same folder as the app is in, if found
- identifiers from include files sometimes did not appear in reports
- new section in "Third-party dependencies Report", called "Third-party identiers directly referenced, with location". Same as "Third-party identifiers directly referenced", but also lists reference locations, if the reference is from code in the main file folder. This section is useful for finding locations where third-party code is referenced.
- fixed error related to anonymous methods
- fixed problem with handling of generics
- Duplicate Identifiers Report now does not report identifiers with same name but with different number of generic parameters
- Sections "Missing 'const'.." in Optimization Report now does not report identifiers that are not used at all in the subprogram
- fixed problem with typecasted strings in const declarations
- fixed problem with generics and method declarations
- now understands "$IF NOT" conditional expressions
- fixed error with hint directive after "end" keyword
- added Delphi 2009 to list of compiler targets in wizard dialog
- did not find library/browsing path for Delphi 2009
- added support for Delphi 2009
- fixed problem detecting calls to FreeAndNil in some situations, causing error in Memory Report
- fixed a problem in Reduction Report, for "Local identifiers that are set more than once", it falsely reported identifiers set in "try/except" blocks
- options on command-line for PALCMD.EXE now replace options specified in the PAP or PAM file (earlier they were only honoured when directly specifying a source file)
- new switch for PALCMD.EXE: /R to specify a report root folder, like /R=c:\temp or "/R=c:\Program Files\X"
- fixed problem parsing record types with const declaration
- fixed a problem in the Uses Report that could cause AV in some cases
- string assignment like "S := 'A' + ^\;" failed with syntax error
- problems with selected sections for some form reports
- declaration like "var X : System.string" failed when parsing for Delphi 7 or earlier
- fixed problem transferring focus to the Delphi IDE when double-clicking in reports
- fixed problem parsing generics code
- abstract methods are now not included in Complexity Report statistics
- line number when calling external application was off by one
- fixed minor error in Find functionality
- new section in Memory Report: "'Local objects that are created more than once without being freed in-between"
- added possibility to open source code file in external application,
- Uses
Report also reports units with initialization sections that have empty interface
part
- removed some false warnings in the Memory Report
- fixed problems with extracting category and owner from todo item in the To-Do Report
- directive VER190 was not set for compiler Delphi 2007 .NET
- added support for Delphi 2007 .NET
- fixed a problem with PALCMD.EXE, when running PAP files
- fixed a problem with array of const declarations
- fixed a problem with report sections "Local identifiers that 'shadow'..." in the Convention Report
- fixed problems with record helpers
- fixed a problem with report sections "Local identifiers that 'shadow'..." in the Convention Report
- fixed problem with record operators
- overload handling has been improved a lot, PAL is now much better at resolving calls to overloaded methods
- a couple of controls were misaligned in the project options pages
- wizard options did not include Delphi 2007
- "class var" and "class property" is now allowed for Delphi 2005
- fixed some problems with identifiers named "Name", mix-up with directive name
- in Optimization Report, section "Missing const for unmodified string parameter", now does not report parameters in subprograms marked with the "override" directive, because these subprograms cannot change their parameter lists
- added support for Delphi 2007 (Win32) from CodeGear
- default compiler is now Delphi 2007 (Win32)
- conditional directive "_PEGANZA_" is now always automatically defined
- Status Report now shows user environment variables translated to full paths, for searched folders and similar items
- now reads/writes PAL.INI from folder under "Documents and Settings"
- project files are suggested to be read/written from a folder under "My Documents"
- improved help system, now uses HTMLHelp
- increased maximum stack size, needed for very deeply nested unit dependencies
- fixed problem with forward declared interfaces
- "Bad class visibility order" in "Convention Report", is not reported for form classes (these always start with public/published section)
- hit counters for some sections were not initialized correctly
- fixed error in search function
- fixed problem with Inconsistent Case Report when reporting with-blocks, false positives could be created
- fixed error generating tree of reports and sections, missing section for Memory Report
- hit counts were written for some sections that do not use them
- Todo Report had initially no selected sections
- fixed error calculating hits totals for reports
- major new version, see the What's New page
- wrong number of table columns for HTML table in Forms Report
- bad HTML formatting for Class Hierarchy Report
- jump to sections in Events Report did not work in HTML format
- project files are now saved much faster
- Complexity Report, some sections not generated
- format options, checkbox "One report file" not possible to check always
- error parsing "property Name", misinterpreted "Name" as directive
- form report, default form position changed in D8 and later from poDesigned to poDefaultPosOnly
- double-clicking in the Uses Report opens the relevant source file in the viewer
- fixed error with forward references
- fixed some problems resolving dereferenced pointers
- Third-Party Report, "Third-party identifiers directly referenced" now always includes all found identifiers, even if they are in folders excluded for reporting (otherwise you would have to include these folders, giving much bigger reports, with many irrelevant listings)
- fixed error when parsing property declarations, for code like "property Left : integer read FMyRec.Left write FMyRec.Left", the write-clause was not evaluated correctly
- option "One file for each report" also possible now, even if "Create Subfolder" is not checked
- fixed error handling "final" directive
- environment variables in paths etc were not translated in all cases
- "interrupt" keyword was not allowed in an interface section
- Options in .bdsproj files were not read for versions later than Delphi 8
- Support for "strict" directive was incomplete
- Error when parsing record types declared in "var" blocks
- changed caption to "$DEFINE/UNDEF used but no matching $IFDEF/$IFNDEF in code" for section in Conditional Symbols report
- Missing Property Report, now does not warn for missing TButton.OnClick or TBitButton.OnClick if ModalResult <> mrNone
- "class var" and "var" in class declarations were not accepted for Delphi 2005 and Delphi 2006 (Win32 personalities)
- problem with exception solved for some sections in the Warnings Report
- class functions were not allowed for old-style objects
- "class sealed" and "class abstract" were not allowed for Delphi 2005 and Delphi 2006 (Win32 personalities)
- class properties were not allowed for Delphi 2006 (Win32)
- "strict" was not allowed for Delphi 2005 (Win32)
- fixed a problem with compilation directives
- error in Warnings Report, "Destructors without override directive", warning was issued for reintroduced destructors
- support added for Delphi 2006 (Win32 and .NET)fixed problem parsing property declarations
- fixed error in Warnings Report, section for dangerous raise statements
- list of dangerous raise/exit commands were not rinsed from unreported locations in the Warnings Report
- now does not report "dangerous raise" if the raise command is just before the end of the sub (requires the "raise" keyword to be on the line just above the "end")
- fixed error for multireport, could get AV in some situations
- application splash screen is removed
- fixed problem parsing property declarations
- fixed error finding include files when path started with "\"
- fixed error generating XML for Call Index Report
- fixed error generating XML for Optimization Report
- max length for strings read from INI file was 4096 chars, changed to 32768
- for "library" module, now does not add warning for empty begin-end block (because is mandatory)
- fixed error in Third-Party Report, identifiers from excluded folders were listed
- fixed some problems handling excluded folders
- fixed parsing error with "external" keyword
- improved handling of virtual and abstract method calls
- fixed error in Warnings Report, sections always written even when deselected
- improved speed building Call Reports
- fixed error resolving identifiers in "absolute" declarations
- Memory Report now ignores destroy and close events for data modules
- fixed error in Uses Report, check if main file was project file sometimes returned wrong result
- fixed problem identifying typed constants
- fixed problem jumping to code line in include files
- fixed problem handling include file directives which contain comments
- fixed problem handling external directive with file reference
- fixed error, "object" keyword was not allowed for Delphi 2005 Win32
- fixed error handling new "inline" directive
- fixed error handling files saved in UTF8-format
- adds support for Delphi 2005 (both Win32 and .NET personalities)
- new section "Abstract methods not overridden" in Warnings Report (for existing projects, you will have to explicitly check this report section to activate it)
- new section "$DEFINE/IFDEF used but no matching $IFDEF/$IFNDEF in code" in Conditional Symbols Report (for existing projects, you will have to explicitly check this report section to activate it)
- in Status Report, now also writes the time needed to generate the reports (excluding the Status Report itself)
- fixed error in treeview list, same text for both "Tab Order Report" sections
- fixed error with browsing and library paths
- doubleclicking on include file did not always open it in the source viewer window
- XML not generated correctly for Form Report
- section "Created in try" in Memory Report generated obviously erronous results
- fixed memory leak
- fixed error in PALCMD causing AV at end of run
- fixed error recognizing typed constants
- fixed error with memory manager
- major new version, see the What's New page
- help find was not located correctly in some situations
- code like "const X : integer = $;" was not allowed by the parser
- parsing DPK files did not follow units in uses list
- error parsing assembler code when "@" used as label
- better error message for syntax errors, now includes module name
- error, (*$I inc*) was not resolved as inc.pas
- Warnings Report, section "ambiguous with" included identifiers from excluded folders
- error registering reference for numeric label
- error in Inconsistent Case report for initialized global variables
- include files were not always found when doubleclick on a report line
- improved XML reporting
- Bindings report could include identifiers from excluded folders
- error could cause broken XML file for Duplicate Identifiers Report
- Identifiers Report listed unit identifiers from excluded folders
- the range dialog for copying to the clipboard now only shows up if all reports are written to one single file
- fixed error locating files
- fixed registration error in version 2.1.7
- fixed problem related to records with variant sections
- fixed problem resolving relative paths in include directives
- numerical labels (like "30:") were not recognized
- fixed error in Prefix Reportm, false positive warnings could be issued
- fixed error in Code Reduction Report, false warnings for strings being initialized to zero could be given
- fixed problem with large fonts in options dialog
- fixed problem resolving relative paths in include directives
- fixed error printing text reports. Even if all reports selected only the current one was printed.
- fixed a problem with displaying labels in Options dialog under Windows XP
- new option "Allow multibyte characters" in the Options dialog (parser tab page), default value is false. If this option is selected, multibyte characters like in Shift-JS (Japanese) are allowed in comments
- fixed some resizing problems in the main form
- fixed error in handling exports statement
- fixed error with Shift-JS (Japanese characters) in comments
- fixed error when printing selected text
- fixed error with multi-byte characters in comments
- fixed error parsing declaration "file of byte absolute X"
- changed handling of references to object and record instances, resulting in fewer warnings
- improved handling of identifiers with unknown type, removes some irrelevant warnings
- improved handling of overloaded subprograms
- fixed error in Convention Report - as help indicates, constructors starting with "Create" etc are OK, but reported error if not exactly "Create".
- improved Code Reduction Report, now does not report identifiers that are set many times in a row, if one of two consecutive times is in a condition (if/case)
- fixed error handling built-in Str procedure
- fixed error in Duplicates Report, some identifiers were not reported in some cases
- backup files are now copied as '*.~txt' instead of '*.~tx'
- fixed error, Warnings Report - "Destructor without override directive" considered even old-style objects, but in this case the override directive gives a syntax error
- fixed error, Warnings Report - 'Constructor/destructor without call to inherited', for old-style objects gave a warning, even if no ancestor existed
- fixed error, Warnings Report, 'Possible bad object creation', now does not report old style objects
- fixed error, Warnings Report, 'Variables that are read but not set', now does not report old-style objects
- fixed error parsing construct like 'case X.Y of'
- fixed error with location include files in some cases
- improved handling of form inheritance
- fixed error, compiler allows 'class' word before local subprogram, so now allowed even in PAL
- fixed error handling 'inline' code
- improved handling of uses lists for inherited forms in Uses Report, the situation when a base form uses a unit, the Delphi IDE automatically inserts this unit in the uses list of the nchild form, even if it is not referenced anywhere. These situations are detected and the unit is listed as 'used by inherited form' instead of 'unnecessary'
- fixed error in mainly Warnings Report, for 'out' parameters
- increased maximum stack size, because of stack overflow problems in NT 4 in some cases
- fixed error parsing 'absolute' directive in some cases
- fixed error handling blank lines after final 'end.' in unit code
- fixed error locating relative paths
- fixed error handling '(*$I x.pas*)' directive in some cases
- improved compression-quality for generated JPEG files
- new options to include Delphi's library and browsing paths when searching for source code
- added support for Delphi's environment variables, like $(DELPHI) and user-defined ones like $(MYLIB)
- changed captions for untyped var/out/const parameters in the Totals Report
- fixed error in handling code referencing "System.Delete", as opposed to just "Delete"
- fixed error parsing short string type like "X : string[Y]" where Y was erronously skipped by the parser/analyzer
- fixed error when entering text in the combo box text input area for "Search Directories"
- fixed error parsing ancestorlist for interface, did not register reference to ancestor
- fixed error recognizing relative paths in some cases
- fixed error, setting for "Warnings only" in the Uses Report was not used
- fixed error with checkboxes for Control Alignment and Control Size Reports
- fixed error, did not resolve references in "var MyVar : UsedUnit.TMyType" but "var MyVar : TMyType" was resolved properly
- fixed error with handling of class type references in some cases
- fixed error parsing some kinds of OLE automation code, like "FRng := FDoc.Range(start:=0,end:=0);"
- fixed error, option for backup of report files did not work
- fixed error resolving references to identifiers with same name, declared in different units in some rare cases
- fixed error that could cause AV when parsing FreeAndNil call
- fixed error when selecting search folders
- numerous new features and enhancements, see the What's New page
- new compiler option 'Delphi 7' (default)
- fixed error parsing include file specified with relative path
- fixed error relating to nested record declarations
- fixed errors parsing directives 'export' and 'abstract'
- fixed error parsing DFM file with line like 'Prop = .Owner'
- disabled printing by HTML when frames are active
- fixed error in parsing case statement
- now allows multiple $ELSE directives in a row, just like the Delphi compiler
- fixed error parsing properties with old-style objects
- fixed error parsing some directives for procedure type declarations
- fixed error detecting function result assignment in some cases
- fixed error in Optimization Report, parameters missing "const" directive were reported when the owning method was abstract
- fixed error parsing include directive in some rare cases
- fixed error parsing variant property values in DFM files
- fixed error, "with X(Y,Z)" triggered 'Multiple With'-listing in Convention Compliance Report
- fixed error parsing out-parameters, could cause the parser to fail in rare cases
- fixed error for code parsed with BP7 as target: unit file names are now expected in 8.3 format even if unit name is longer
- fixed error parsing 'write(X:Y, Z)' in some cases
- fixed error parsing 'object()', did not register ancestor reference properly for oldstyle objects
- fixed error in Control Warnings Report, section about FocusControl was sometimes omitted
- fixed error in Control Warnings Report, did not use controls on inherited forms in some situations
- new additional command-line version PALCMD.EXE
- search folders entered under Options|Properties|Parser may now contain relative paths
- fixed error, parsing statements with OleVariants could fail in some cases
- fixed error, parsing statement like 'Str(R:I:J, S)' could fail in some cases
- fixed error parsing 'forward' keyword not followed by a semicolon
- fixed error with 'Multiple With'-section in 'Convention Compliance Report'
- fixed error with double '&' char when checking FocusControl value in 'Control Warnings Report'
- fixed error with double '&' char when checking conflicting accelerators in 'Control Warnings Report'
- fixed error parsing statements like 'writeln(Number:5:2)'
- fixed error parsing 'stringresource' which was erroneously taken for a reserved word
- fixed error resolving path in some cases for units mentioned in project file
- fixed error, default prefix definitions were always added when program started. Now only added if definitions are missing in the INI file
- fixed error, parsing some uncommon type declarations could fail
- fixed error, Optimization Report reported parameter as missing "const", althought it was used as a var-parameter (or out-parameter) inside the subprogram, and thus could not be a var-parameter
- control/property value pairs are now trimmed, e.g. "TLabel ; Caption" is stored as "TLabel;Caption"
- fixed error, uses-list "in"-path in project file
was not always used
- Control Warnings Report, colon checking for label caption, now trims so ":" is equivalent to ": "
- fixed error, record fields set by initialized global record variables were not always registered
- Control Warnings Report, warnings for accelerators are not issued for controls that share a common action
- Control Size Report, fixed error, output for "Horisontal Size" and "Vertical Size" switched
- Control Warnings Report, fixed error with FocusControl section
- fixed error, parsing include file directive within comment
- fixed error, parsing absolute directive for BP7 code
- new report 'Prefix Report', warns for variables that do not follow the prefix rule for the owning type. New dialog box exists to define rules.
- new section in 'Warnings Report': 'Instance created of class with abstract methods'
- new 'Property Value Report', scans DFM-forms for selected property values, e.g. produces a listing of all SQL property values. A new dialog box exists to select which properties that are monitored.
- new section in the 'Literal Strings Report', listing constants declared as resourcestrings, instead of listing them together with the other declared constants
- section 'Identifiers not used' in 'Reduction Report', now does not report parameters, local variables etc to subprograms that are never used.
- options 'Create subfolders' and 'One file for each report' are now TRUE as default
- 'Warnings Report', 'Var parameters that are used but never set' (and similar 'probably'-report): parameters to event handlers are not reported
- 'Control Warnings Report' now does not list button/menus with missing OnClick-event when property Action is set
- 'Convention Report', section for bad identifier names, now also reports names that are similar as those predefined in the System unit (e.g. Copy, Byte, AllocMem). Only applies to Delphi 1 or higher
- every class type (new object model) is assumed to descend originally from TObject. Affects the class reports.
- the report viewer (text) now shows a greyish color when no file is loaded
- fixed error, could occur duplicate listings both in 'Local variables that are referenced before they are set' and corresponding 'possible'-report
- fixed error, 'Form Report', 'Call Index Report' and the control reports also showed identifiers from excluded folders
- fixed error, sometimes when a missing report file was selected any subsequent reports could not be seen
- fixed error, '"' were not given with the correct HTML representation
- fixed error with resolving relative paths, when deciding whether identifiers should be included in report
- fixed error in parser for class reference declared in local scope
- fixed error, parsing statements with variants, like "X.Range(start:=0;end:=1);" where X is a variant
- fixed error in evaluation version, when bad license key entered, error message appeared behind the application window
- fixed error, parsing special characters in DFM-file
- fixed error resolving file paths in some cases
- fixed error parsing code like:
initialization
SomeCall
finalization
that is when a semicolon is missing after "SomeCall"
- INI file values may now be up to 4096 characters long
- fixed error parsing variable declaration with absolute record
- fixed error parsing type identifier passed as parameter, like in
..
X := SizeOf(File);
..
- fixed error, abstract methods were reported as unused in the declaring class
- changed behaviour, if unknown structured type variable assigned, reported as set (previously reported as ref)
- now checks if report file exists before trying to load it in the text/HTML viewer window
- fixed error, when clicking in treeview report was not always found (occurred for reports with multiple words in the name)
- fixed error, value parameter that is an interface, when parameter set in subprogram, registered the interface as being set, resulting in a "value parameter set" listing
- fixed error, when changing from text to HTML mode for reports, HTML reports were not always loaded in the viewer, only after application restart
- fixed error, option to load file at startup from command-line parameter was missing, although documented in help text and tutorial
- new HTML formatting for reports, supporting frames and stylesheets
- optionally create reports in separate subfolder
- reports may be divided over multiple files
- new Form Report, reporting values for important form properties
- fixed error parsing interrupt procedures (16-bit code)
- fixed error parsing record type with string field, when semicolon is missing before final "end"
- fixed error occuring in some situations when parsing record type with case constructs
- fixed error parsing declaration of some unusual subrange types
- some optimizations added for the Complexity Report, now somewhat faster to generate
- fixed error parsing numeric labels, like "1:" at the beginning of a code line (yes, people still use labels!)
- fixed error parsing unknown identifiers with field names equivalent to keywords (like "X.Type"). Such field names are indeed valid for variants
- fixed error in the Uses Report, units that were aliased (like Windows=WinProcs+WinTypes) could create duplicate listing
- fixed error in the Complexity Report, calculating overall Chars/LOC
- fixed error parsing array of procedure type (like "type X = array[0..1] of procedure")
- The first public version of Pascal Analyzer