Skip to content

CodeCops not working properly #8168

@jmadrigalTCN

Description

@jmadrigalTCN

1. Describe the bug
Codecops do not behave properly in similar situations

2. To Reproduce
Create this peace of code:

internal procedure updateWarehouseActivityLine(pWarehouseActivityLine: Record "Warehouse Activity Line")
var
warehouseActivityLine: Record "Warehouse Activity Line";
description: Text;
begin
if pWarehouseActivityLine."Source Document" <> pWarehouseActivityLine."Source Document"::"Sales Order" then
exit;
if getItemNoAndNovatixNo(pWarehouseActivityLine."Source No.", pWarehouseActivityLine."Source Line No.", description) then begin
warehouseActivityLine.get(pWarehouseActivityLine."Activity Type", pWarehouseActivityLine."No.", pWarehouseActivityLine."Line No.");
warehouseActivityLine.validate(Description, CopyStr(description, 1, MaxStrLen(warehouseActivityLine.Description)));
warehouseActivityLine.Description := description; // <-------- Warning of posible overload
warehouseActivityLine.Modify(true);
end;
end;

And codecop, in this line:
warehouseActivityLine.Description := description; // <-------- Warning of posible overload
gives a warning.

But if you do the very same peace of code

internal procedure updateWarehouseActivityLine(pWarehouseActivityLine: Record "Warehouse Activity Line")
var
warehouseActivityLine: Record "Warehouse Activity Line";
description: Text;
begin
if pWarehouseActivityLine."Source Document" <> pWarehouseActivityLine."Source Document"::"Sales Order" then
exit;
if getItemNoAndNovatixNo(pWarehouseActivityLine."Source No.", pWarehouseActivityLine."Source Line No.", description) then begin
warehouseActivityLine.get(pWarehouseActivityLine."Activity Type", pWarehouseActivityLine."No.", pWarehouseActivityLine."Line No.");
warehouseActivityLine.validate(Description, CopyStr(description, 1, MaxStrLen(warehouseActivityLine.Description)));
warehouseActivityLine.Validate(Description,description); // <---------- No warning
warehouseActivityLine.Modify(true);
end;
end;

But you change the line with the warning with:

warehouseActivityLine.Validate(Description,description); // <---------- No warning

Namely, instead rec.field := value, rec.validate(field,value) CodeCops, do not give any warning

  • AL Language: 16.2.1869542

  • Visual Studio Code: Version: 1.106.3 (system setup)
    Commit: bf9252a2fb45be6893dd8870c0bf37e2e1766d61
    Date: 2025-11-25T22:28:18.024Z
    Electron: 37.7.0
    ElectronBuildId: 12781156
    Chromium: 138.0.7204.251
    Node.js: 22.20.0
    V8: 13.8.258.32-electron.0
    OS: Windows_NT x64 10.0.26200

  • Business Central: Not relevant

  • List of Visual Studio Code extensions that you have installed:

  • AL LAnguaje

  • Operating System:

    • Windows
    • Linux
    • MacOS

Please remember to do the following:

  • Search the issue repository to ensure you are reporting a new issue

  • Reproduce the issue after disabling all extensions except the AL Language extension

  • Simplify your code around the issue to better isolate the problem

Internal work item: AB#615683

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions