What's new in Pascal Analyzer 4?

This section describes changes and new features in Pascal Analyzer version 4. Generally a lot of work has been done in order to reduce the number of false warnings and listings, and to further raise the quality. But there is also a great number of new features in this upgrade of Pascal Analyzer:

Excluded folders and files
There are new settings for excluded folders and excluded files in the Options dialog for a project. By using these settings you can tell PAL which files to skip when parsing your source code.

Section and report counters
In the report tree, many report sections show the number of reported items. From this version the old (previous) numbers could also be displayed, for comparison purposes. For example, this is a caption from the Optimization Report.

"(3 ) Virtual methods (procedures/functions) that are not overridden (was 5)"

The first number in parenthesis (3) shows the current number of warnings for this section. The second number (5) shows the number of warnings that were generated the last time this project was analyzed. For reports that have not yet been run, the text "unknown" will be displayed, instead of a number.

It is possible to define masks for how the captions are displayed in reports and sections both when section counters are used and when they are not. In this way you can choose to display the caption in a customizable format, like

"Virtual methods (procedures/functions) that are not overridden (now 3, was 5)"

You can also customize colors for captions in the report tree. For example, an item with a growing number of warnings, can be displayed in red colors if you so like.

Separate threads for parsing and reporting
Parsing and reporting is now done by a separate working thread. This gives a more responsive user interface even during this process. Pascal Analyzer 4 is also much quicker than its predecessor. It typically parses and generates reports about 25% faster.

New Strong Warnings Report
This report displays severe warnings. Those warnings points to errors in the source code that may lead to runtime failure of your product.

The section "Property Access in read/write methods" reports methods where properties are accessed directly, causing infinite recursion.

The section "Ambiguous unit references" lists identifiers and locations with ambiguous references. This are locations with a reference to an identifier that is exposed by two or more used units. The compiler will search the uses list backwards for a suitable unit, which makes this very unstable and prone for mistakes.

New Directives Report
This new report displays information about directives. There are five sections:

  • Identifiers marked with the "deprecated" directive
  • Identifiers marked with the "experimental" directive
  • Identifiers marked with the "library" directive
  • Identifiers marked with the "platform" directive
  • Identifiers marked with the "inline" directive

New To-Do Report
This new report displays the to-do items that are entered in the special dialog box in the Delphi IDE, or inserted directly into the source code.

New Module Call Tree Report
This new report displays a hierarchical module call tree.

New sections in the Code Reduction Report

  • Unneeded boolean comparisons
  • Boolean assignment can be shortened

New sections in the Convention Report

  • Hard to read identifier names
  • Label usage
  • Bad class visibility order
  • Identifiers with numerals
  • Local identifiers that "shadow" outer scope identifiers
  • Local identifiers that "shadow" class members
  • Class/member name collision

New sections in the Warnings Report

  • Local for-loop variables read after loop
  • Local for-loop variables possibly read after loop
  • For-loop variables not used in loop
  • Non-public constructors/destructors
  • Functions called as procedures
  • Mismatch property read/write specifiers

New section in the Memory Report
The new section "Unbalanced Create/Free" reports object instances that are not created and freed the same number of times.

New section in the Uses Report
This new section reports "Mutual unit references", where two units reference each other.

New section in the Control Warnings Report
The new section reports controls with an assigned Hint property, where both ShowHint and ParentShowHint are "false".

New section in the Uses Report for multiprojects
There is a new section that for each unit report which projects that reference it.